fix #4669 also for xtrans

This commit is contained in:
heckflosse
2018-07-07 16:39:28 +02:00
parent 9224d6e18c
commit 7f897e4e4d

View File

@@ -112,6 +112,11 @@ void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4],
} else if (ri->isXtrans()) {
const int height = ri->get_iheight();
const int width = ri->get_iwidth();
const bool isFloat = ri->isFloat();
const int top_margin = ri->get_topmargin();
const int left_margin = ri->get_leftmargin();
const int raw_width = ri->get_rawwidth();
const float * const float_raw_image = ri->get_FloatRawImage();
#ifdef _OPENMP
#pragma omp parallel for if(multiThread)
@@ -127,7 +132,12 @@ void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4],
for (; col < width - 5; col += 6) {
for (int i = 0; i < 6; ++i) {
const unsigned ccol = c[i];
float val = image[row * width + col + i][ccol];
float val;
if (isFloat) {
val = float_raw_image[(row + top_margin) * raw_width + col + i + left_margin];
} else {
val = image[row * width + col + i][ccol];
}
val -= cblack[ccol];
val *= scale_mul[ccol];
image[row * width + col + i][ccol] = rtengine::CLIP (val);
@@ -136,7 +146,12 @@ void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4],
for (; col < width; ++col) { // remaining columns
const unsigned ccol = ri->XTRANSFC (row, col);
float val = image[row * width + col][ccol];
float val;
if (isFloat) {
val = float_raw_image[(row + top_margin) * raw_width + col + left_margin];
} else {
val = image[row * width + col][ccol];
}
val -= cblack[ccol];
val *= scale_mul[ccol];
image[row * width + col][ccol] = rtengine::CLIP (val);