cairo: move CMYK extension formats here
authorØyvind Kolås <pippin@gimp.org>
Mon, 3 Dec 2018 23:04:45 +0000 (00:04 +0100)
committerØyvind Kolås <pippin@gimp.org>
Mon, 3 Dec 2018 23:11:14 +0000 (00:11 +0100)
This adds new endian-aware formats cairo-ACMK32 and cairo-ACKY32 which are
derived from babl_format("camayakaA u8") - converting succesively with these
two formats to this format or other sharing the model permits rebuilding a
complete CMYKA image.

extensions/cairo.c
extensions/naive-CMYK.c

index 9a96fc3a65e9ff6c5df8642f8d6a3a1f91b4b5cc..e10f3847c6dfab0452d443ddf6da8f04119e85cc 100644 (file)
@@ -529,5 +529,71 @@ init (void)
     NULL
     );
 
+
+  /* formats that distribute different subset of the additive mixing variants
+   * of CMYK producing two syntetic RGB formats we run in parallel to derive
+   * a 4 instead of 3 component result, the same method could be used to
+   * extend processing/drawing with cairo to spectral data.
+   */
+  if (littleendian)
+  {
+    babl_format_new ("name", "cairo-ACMK32",
+                     babl_model ("camayakaA"),
+                     babl_type ("u8"),
+                     babl_component ("ka"),
+                     babl_component ("ma"),
+                     babl_component ("ca"),
+                     babl_component ("A"),
+                     NULL);
+    babl_format_new ("name", "cairo-ACKY32",
+                     babl_model ("camayakaA"),
+                     babl_type ("u8"),
+                     babl_component ("ya"),
+                     babl_component ("ka"),
+                     babl_component ("ca"),
+                     babl_component ("A"),
+                     NULL);
+  }
+  else
+  {
+    babl_format_new ("name", "cairo-ACMK32",
+                     babl_model ("camayakaA"),
+                     babl_type ("u8"),
+                     babl_component ("A"),
+                     babl_component ("ca"),
+                     babl_component ("ma"),
+                     babl_component ("ka"),
+                     NULL);
+    babl_format_new ("name", "cairo-ACKY32",
+                     babl_model ("camayakaA"),
+                     babl_type ("u8"),
+                     babl_component ("A"),
+                     babl_component ("ca"),
+                     babl_component ("ka"),
+                     babl_component ("ya"),
+                     NULL);
+  }
+
+  /* companion subset formats for setting pango u16 RGB color values from cmykA
+   * */
+  babl_format_new ("name", "ckyA u16",
+                   babl_model ("cmykA"),
+                   babl_type ("u16"),
+                   babl_component ("cyan"),
+                   babl_component ("key"),
+                   babl_component ("yellow"),
+                   babl_component ("A"),
+                   NULL);
+  babl_format_new ("name", "cmkA u16",
+                   babl_model ("cmykA"),
+                   babl_type ("u16"),
+                   babl_component ("cyan"),
+                   babl_component ("magenta"),
+                   babl_component ("key"),
+                   babl_component ("A"),
+                   NULL);
+
+
+
   return 0;
 }
index 1e1c905f59e0372f386fd475470f95cfa88f3b64..de93fa804291334cc523627b7338e45e7598c340 100644 (file)
@@ -37,58 +37,6 @@ int init (void);
 int
 init (void)
 {
-  babl_format_new ("name", "ckyA u16",
-                   babl_model ("cmykA"),
-                   babl_type ("u16"),
-                   babl_component ("cyan"),
-                   babl_component ("key"),
-                   babl_component ("yellow"),
-                   babl_component ("A"),
-                   NULL);
-  babl_format_new ("name", "cmkA u16",
-                   babl_model ("cmykA"),
-                   babl_type ("u16"),
-                   babl_component ("cyan"),
-                   babl_component ("magenta"),
-                   babl_component ("key"),
-                   babl_component ("A"),
-                   NULL);
-
-  babl_format_new ("name", "camakaA u8",
-                   babl_model ("camayakaA"),
-                   babl_type ("u8"),
-                   babl_component ("ka"),
-                   babl_component ("ma"),
-                   babl_component ("ca"),
-                   babl_component ("A"),
-                   NULL);
-  babl_format_new ("name", "cakayaA u8",
-                   babl_model ("camayakaA"),
-                   babl_type ("u8"),
-                   babl_component ("ya"),
-                   babl_component ("ka"),
-                   babl_component ("ca"),
-                   babl_component ("A"),
-                   NULL);
-  babl_format_new ("name", "camaPadkaA u8",
-                   babl_model ("camayakaA"),
-                   babl_type ("u8"),
-                   babl_component ("ca"),
-                   babl_component ("ma"),
-                   babl_component ("PAD"),
-                   babl_component ("ka"),
-                   babl_component ("A"),
-                   NULL);
-  babl_format_new ("name", "caPadyakaA u8",
-                   babl_model ("camayakaA"),
-                   babl_type ("u8"),
-                   babl_component ("ca"),
-                   babl_component ("PAD"),
-                   babl_component ("ya"),
-                   babl_component ("ka"),
-                   babl_component ("A"),
-                   NULL);
-
   return 0;
 }