[babl/wip/pippin/inverted-cmyk] add cmyk inverter



commit e8227f0630a351deea439e5cc79ce543919b2c6a
Author: Øyvind Kolås <pippin gimp org>
Date:   Wed Nov 21 04:11:38 2018 +0100

    add cmyk inverter

 extensions/CMYK.c | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)
---
diff --git a/extensions/CMYK.c b/extensions/CMYK.c
index 9abec66..c9872e0 100644
--- a/extensions/CMYK.c
+++ b/extensions/CMYK.c
@@ -226,6 +226,31 @@ cmyka_to_CMYK (const Babl *conversion,char *src,
     }
 }
 
+static void
+cmyka_to_CMYKa (const Babl *conversion,char *src,
+                char *dst,
+                long  n)
+{
+  while (n--)
+    {
+      double cyan    = ((double *) src)[0];
+      double magenta = ((double *) src)[1];
+      double yellow  = ((double *) src)[2];
+      double key     = ((double *) src)[3];
+      double alpha   = ((double *) src)[4];
+
+      ((double *) dst)[0] = 1.0-cyan;
+      ((double *) dst)[1] = 1.0-magenta;
+      ((double *) dst)[2] = 1.0-yellow;
+      ((double *) dst)[3] = 1.0-key;
+      ((double *) dst)[4] = alpha;
+
+      src += 5 * sizeof (double);
+      dst += 5 * sizeof (double);
+    }
+}
+
+
 
 
 
@@ -689,6 +714,20 @@ init (void)
     NULL
   );
 
+  babl_conversion_new (
+    babl_model ("cmykA"),
+    babl_model ("CMYKA"),
+    "linear", cmyka_to_CMYKa,
+    NULL
+  );
+  babl_conversion_new (
+    babl_model ("CMYKA"),
+    babl_model ("cmykA"),
+    "linear", cmyka_to_CMYKa, // does the same job
+    NULL
+  );
+
+
   babl_conversion_new (
     babl_model ("cmykA"),
     babl_model ("CMYK"),


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