]> gitweb.factorcode.org Git - factor.git/commitdiff
colors.cmyk: adding support for CMYK colors.
authorJohn Benediktsson <mrjbq7@gmail.com>
Sun, 21 Oct 2012 19:02:30 +0000 (12:02 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sun, 21 Oct 2012 19:02:30 +0000 (12:02 -0700)
extra/colors/cmyk/authors.txt [new file with mode: 0644]
extra/colors/cmyk/cmyk.factor [new file with mode: 0644]
extra/colors/cmyk/summary.txt [new file with mode: 0644]

diff --git a/extra/colors/cmyk/authors.txt b/extra/colors/cmyk/authors.txt
new file mode 100644 (file)
index 0000000..e091bb8
--- /dev/null
@@ -0,0 +1 @@
+John Benediktsson
diff --git a/extra/colors/cmyk/cmyk.factor b/extra/colors/cmyk/cmyk.factor
new file mode 100644 (file)
index 0000000..bab472e
--- /dev/null
@@ -0,0 +1,37 @@
+! Copyright (C) 2012 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+
+USING: accessors colors kernel math math.order ;
+
+IN: colors.cmyk
+
+TUPLE: cmyka
+{ cyan read-only }
+{ magenta read-only }
+{ yellow read-only }
+{ black read-only }
+{ alpha read-only } ;
+
+C: <cmyka> cmyka
+
+M: cmyka >rgba
+    [ [ cyan>> ] [ black>> ] bi + ]
+    [ [ magenta>> ] [ black>> ] bi + ]
+    [ [ yellow>> ] [ black>> ] bi + ] tri
+    [ 1.0 min 1.0 swap - ] tri@ 1.0 <rgba> ;
+
+: rgba>cmyka ( rgba -- cmyka )
+    >rgba-components [
+        [ 1 swap - ] tri@ 3dup min min
+        [ [ - 0.0 1.0 clamp ] curry tri@ ] keep
+    ] dip <cmyka> ;
+
+: cmyka>gray ( cmyka -- gray )
+    [
+        {
+            [ cyan>> 0.3 * ]
+            [ magenta>> 0.59 * ]
+            [ yellow>> 0.11 * ]
+            [ black>> ]
+        } cleave + + + 1.0 min 1.0 swap -
+    ] [ alpha>> ] bi <gray> ;
diff --git a/extra/colors/cmyk/summary.txt b/extra/colors/cmyk/summary.txt
new file mode 100644 (file)
index 0000000..10ca1ba
--- /dev/null
@@ -0,0 +1 @@
+CMYK colors