Whean read, 32 bits tiff image data are not scaled anymore
So the highlights above the 1.0 upper limit will be clipped but colors will be preserved. Fix #4379
This commit is contained in:
@@ -57,35 +57,38 @@ void Imagefloat::setScanline (int row, unsigned char* buffer, int bps, float *mi
|
||||
float* sbuffer = (float*) buffer;
|
||||
|
||||
for (int i = 0; i < width; i++) {
|
||||
r(row, i) = sbuffer[ix];
|
||||
r(row, i) = 65535.f * sbuffer[ix];
|
||||
|
||||
if (minValue) {
|
||||
if (sbuffer[ix] < minValue[0]) {
|
||||
minValue[0] = sbuffer[ix];
|
||||
} else if (sbuffer[ix] > maxValue[0]) {
|
||||
maxValue[0] = sbuffer[ix];
|
||||
} ++ix;
|
||||
}
|
||||
}
|
||||
++ix;
|
||||
|
||||
g(row, i) = sbuffer[ix];
|
||||
g(row, i) = 65535.f * sbuffer[ix];
|
||||
|
||||
if (minValue) {
|
||||
if (sbuffer[ix] < minValue[1]) {
|
||||
minValue[1] = sbuffer[ix];
|
||||
} else if (sbuffer[ix] > maxValue[1]) {
|
||||
maxValue[1] = sbuffer[ix];
|
||||
} ++ix;
|
||||
}
|
||||
}
|
||||
++ix;
|
||||
|
||||
b(row, i) = sbuffer[ix];
|
||||
b(row, i) = 65535.f * sbuffer[ix];
|
||||
|
||||
if (minValue) {
|
||||
if (sbuffer[ix] < minValue[2]) {
|
||||
minValue[2] = sbuffer[ix];
|
||||
} else if (sbuffer[ix] > maxValue[2]) {
|
||||
maxValue[2] = sbuffer[ix];
|
||||
} ++ix;
|
||||
}
|
||||
}
|
||||
++ix;
|
||||
}
|
||||
|
||||
break;
|
||||
|
Reference in New Issue
Block a user