This commit is contained in:
heckflosse 2018-11-22 16:12:56 +01:00
commit 6e4e07f8c0

View File

@ -62,15 +62,15 @@ bool checkRawImageThumb (const rtengine::RawImage& raw_image)
void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4], bool multiThread)
{
DCraw::dcrawImage_t image = ri->get_image();
const int height = ri->get_iheight();
const int width = ri->get_iwidth();
const int top_margin = ri->get_topmargin();
const int left_margin = ri->get_leftmargin();
const int raw_width = ri->get_rawwidth();
const bool isFloat = ri->isFloat();
const float * const float_raw_image = ri->get_FloatRawImage();
if (ri->isBayer()) {
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)
#endif
@ -110,14 +110,6 @@ 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)
#endif
@ -157,6 +149,20 @@ void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4],
image[row * width + col][ccol] = rtengine::CLIP (val);
}
}
} else if (isFloat) {
#ifdef _OPENMP
#pragma omp parallel for if(multiThread)
#endif
for (int row = 0; row < height; ++row) {
for (int col = 0; col < width; ++col) {
for (int i = 0; i < ri->get_colors(); ++i) {
float val = float_raw_image[(row + top_margin) * raw_width + col + left_margin + i];
val -= cblack[i];
val *= scale_mul[i];
image[row * width + col][i] = val;
}
}
}
} else {
const int size = ri->get_iheight() * ri->get_iwidth();