From 9c7ed822e15a01f2e9fcd4ba39bec4aa8a4cd43f Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Thu, 6 Apr 2017 09:47:29 +0200 Subject: [PATCH] implementation of scale_colors without reinterpret_cast (thanks @Floessie) --- rtengine/rtthumbnail.cc | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 5e2b65e65..1d2706b7a 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -62,13 +62,14 @@ namespace void scale_colors(rtengine::RawImage *ri, float scale_mul[4], float cblack[4]) { DCraw::dcrawImage_t image = ri->get_image(); - int size = ri->get_iheight() * ri->get_iwidth(); - - for (int i = 0; i < size * 4; ++i) { - float val = reinterpret_cast(image)[i]; - val -= cblack[i & 3]; - val *= scale_mul[i & 3]; - reinterpret_cast(image)[i] = rtengine::CLIP(val); + const int size = ri->get_iheight() * ri->get_iwidth(); + for (int i = 0; i < size; ++i) { + for (int j = 0; j < 4; ++j) { + float val = image[i][j]; + val -= cblack[j]; + val *= scale_mul[j]; + image[i][j] = rtengine::CLIP(val); + } } }