diff --git a/extra/colors/cmyk/authors.txt b/extra/colors/cmyk/authors.txt new file mode 100644 index 0000000000..e091bb8164 --- /dev/null +++ b/extra/colors/cmyk/authors.txt @@ -0,0 +1 @@ +John Benediktsson diff --git a/extra/colors/cmyk/cmyk.factor b/extra/colors/cmyk/cmyk.factor new file mode 100644 index 0000000000..bab472ee83 --- /dev/null +++ b/extra/colors/cmyk/cmyk.factor @@ -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 + +M: cmyka >rgba + [ [ cyan>> ] [ black>> ] bi + ] + [ [ magenta>> ] [ black>> ] bi + ] + [ [ yellow>> ] [ black>> ] bi + ] tri + [ 1.0 min 1.0 swap - ] tri@ 1.0 ; + +: rgba>cmyka ( rgba -- cmyka ) + >rgba-components [ + [ 1 swap - ] tri@ 3dup min min + [ [ - 0.0 1.0 clamp ] curry tri@ ] keep + ] dip ; + +: cmyka>gray ( cmyka -- gray ) + [ + { + [ cyan>> 0.3 * ] + [ magenta>> 0.59 * ] + [ yellow>> 0.11 * ] + [ black>> ] + } cleave + + + 1.0 min 1.0 swap - + ] [ alpha>> ] bi ; diff --git a/extra/colors/cmyk/summary.txt b/extra/colors/cmyk/summary.txt new file mode 100644 index 0000000000..10ca1ba09a --- /dev/null +++ b/extra/colors/cmyk/summary.txt @@ -0,0 +1 @@ +CMYK colors