Am Donnerstag, 28. April 2016 19:59:12 UTC+2 schrieb Niklas Mischkulnig:
>
> Hi Thomas,
>
> nope, that doesn't change anything.
> But I found out, that it works in the non-OpenGL preview window (see 
> screenshot)
>
That's a good news. That means that at least the internal profile is okay.
I have attached 2 variants for testing. Both are using different 
approaches. Hopefully one is working now.

Thomas

-- 
A list of frequently asked questions is available at: 
http://wiki.panotools.org/Hugin_FAQ
--- 
You received this message because you are subscribed to the Google Groups 
"hugin and other free panoramic software" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/hugin-ptx/fb87a7eb-10e8-4fd8-9d45-96740784da5a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
diff --git a/src/hugin1/hugin/TextureManager.cpp b/src/hugin1/hugin/TextureManager.cpp
--- a/src/hugin1/hugin/TextureManager.cpp
+++ b/src/hugin1/hugin/TextureManager.cpp
@@ -938,7 +938,7 @@
                 // now take color profiles in file and of monitor into account
                 if (transform != NULL)
                 {
-                    cmsDoTransform(transform, out_img[y], out_img[y], out_img.width());
+                    cmsDoTransform(transform, out_img.rowBegin(y), out_img.rowBegin(y), out_img.width());
                 };
             }
         }
@@ -950,7 +950,7 @@
 #pragma omp parallel for
                 for (int y = 0; y < ho; y++)
                 {
-                    cmsDoTransform(transform, out_img[y], out_img[y], out_img.width());
+                    cmsDoTransform(transform, out_img.rowBegin(y), out_img.rowBegin(y), out_img.width());
                 };
             };
         };
diff --git a/src/hugin1/hugin/TextureManager.cpp b/src/hugin1/hugin/TextureManager.cpp
--- a/src/hugin1/hugin/TextureManager.cpp
+++ b/src/hugin1/hugin/TextureManager.cpp
@@ -934,12 +934,19 @@
                         sy = (double)y * scale_y;
                     out_img[y][x] = invResponse(out_img[y][x],
                         hugin_utils::FDiff2D(sx, sy));
+                    if (transform != NULL)
+                    {
+                        vigra::UInt8 rgb[3];
+                        rgb[0] = out_img[y][x].red();
+                        rgb[1] = out_img[y][x].green();
+                        rgb[2] = out_img[y][x].blue();
+                        cmsDoTransform(transform, &rgb, &rgb, 1);
+                        out_img[y][x] = vigra::RGBValue<vigra::UInt8>(rgb[0], rgb[1], rgb[2]);
+                    }
+                    else
+                    {
+                    };
                 }
-                // now take color profiles in file and of monitor into account
-                if (transform != NULL)
-                {
-                    cmsDoTransform(transform, out_img[y], out_img[y], out_img.width());
-                };
             }
         }
         else
@@ -950,7 +957,15 @@
 #pragma omp parallel for
                 for (int y = 0; y < ho; y++)
                 {
-                    cmsDoTransform(transform, out_img[y], out_img[y], out_img.width());
+                    for (int x = 0; x < wo; x++)
+                    {
+                        vigra::UInt8 rgb[3];
+                        rgb[0] = out_img[y][x].red();
+                        rgb[1] = out_img[y][x].green();
+                        rgb[2] = out_img[y][x].blue();
+                        cmsDoTransform(transform, &rgb, &rgb, 1);
+                        out_img[y][x] = vigra::RGBValue<vigra::UInt8>(rgb[0], rgb[1], rgb[2]);
+                    };
                 };
             };
         };

Reply via email to