[gimp] Bug 795300 - ICC profile conversion artifacts and gamma problems



commit 64c38edd81abc2fe9f5bbd12e2bea24d0ac6d1cf
Author: Michael Natterer <mitch gimp org>
Date:   Wed Apr 18 18:49:47 2018 +0200

    Bug 795300 - ICC profile conversion artifacts and gamma problems
    
    Cache the fish in GimpColorTransform as suggested by Massimo.

 libgimpcolor/gimpcolortransform.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)
---
diff --git a/libgimpcolor/gimpcolortransform.c b/libgimpcolor/gimpcolortransform.c
index 3fda8c7..7da1ec1 100644
--- a/libgimpcolor/gimpcolortransform.c
+++ b/libgimpcolor/gimpcolortransform.c
@@ -76,6 +76,7 @@ struct _GimpColorTransformPrivate
   const Babl       *dest_space_format;
 
   cmsHTRANSFORM     transform;
+  const Babl       *fish;
 };
 
 
@@ -228,11 +229,14 @@ gimp_color_transform_new (GimpColorProfile         *src_profile,
     {
       priv->src_format  = src_format;
       priv->dest_format = dest_format;
+      priv->fish        = babl_fish (priv->src_space_format,
+                                     priv->dest_space_format);
 
       g_printerr ("%s: using babl for '%s' -> '%s'\n",
                   G_STRFUNC,
                   gimp_color_profile_get_label (src_profile),
                   gimp_color_profile_get_label (dest_profile));
+
       return transform;
     }
 
@@ -421,9 +425,7 @@ gimp_color_transform_process_pixels (GimpColorTransform *transform,
     }
   else
     {
-      babl_process (babl_fish (priv->src_space_format,
-                               priv->dest_space_format),
-                    src, dest, length);
+      babl_process (priv->fish, src, dest, length);
     }
 
   if (src_format != priv->src_format)
@@ -502,8 +504,7 @@ gimp_color_transform_process_buffer (GimpColorTransform  *transform,
             }
           else
             {
-              babl_process (babl_fish (priv->src_space_format,
-                                       priv->dest_space_format),
+              babl_process (priv->fish,
                             iter->data[0], iter->data[1], iter->length);
             }
 
@@ -530,8 +531,7 @@ gimp_color_transform_process_buffer (GimpColorTransform  *transform,
             }
           else
             {
-              babl_process (babl_fish (priv->src_space_format,
-                                       priv->dest_space_format),
+              babl_process (priv->fish,
                             iter->data[0], iter->data[0], iter->length);
             }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]