implementation of scale_colors without reinterpret_cast (thanks @Floessie)

This commit is contained in:
Alberto Griggio 2017-04-06 09:47:29 +02:00
parent 6dfe6f95b8
commit 9c7ed822e1

View File

@ -62,13 +62,14 @@ namespace
void scale_colors(rtengine::RawImage *ri, float scale_mul[4], float cblack[4]) void scale_colors(rtengine::RawImage *ri, float scale_mul[4], float cblack[4])
{ {
DCraw::dcrawImage_t image = ri->get_image(); DCraw::dcrawImage_t image = ri->get_image();
int size = ri->get_iheight() * ri->get_iwidth(); const int size = ri->get_iheight() * ri->get_iwidth();
for (int i = 0; i < size; ++i) {
for (int i = 0; i < size * 4; ++i) { for (int j = 0; j < 4; ++j) {
float val = reinterpret_cast<unsigned short *>(image)[i]; float val = image[i][j];
val -= cblack[i & 3]; val -= cblack[j];
val *= scale_mul[i & 3]; val *= scale_mul[j];
reinterpret_cast<unsigned short *>(image)[i] = rtengine::CLIP(val); image[i][j] = rtengine::CLIP(val);
}
} }
} }