implementation of scale_colors without reinterpret_cast (thanks @Floessie)
This commit is contained in:
parent
6dfe6f95b8
commit
9c7ed822e1
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user