Huub Schaeks fix for .schange
[swftools.git] / pdf2swf / xpdf / cmyk.cc
index 82f2bee..c74f743 100644 (file)
@@ -575,6 +575,11 @@ int check(float c, float m, float y, float k, float r, float g, float b)
 }
 void convert_cmyk2rgb(float c,float m,float y,float k, unsigned char*r, unsigned char*g, unsigned char*b)
 {
+    c = c<0?0:(c>1?1:c<=1?c:0.5);
+    m = m<0?0:(m>1?1:m<=1?m:0.5);
+    y = y<0?0:(y>1?1:y<=1?y:0.5);
+    k = k<0?0:(k>1?1:k<=1?k:0.5);
+
     int cc = (int)(c*7.0);
     int mm = (int)(m*15.0);
     int yy = (int)(y*15.0);
@@ -632,9 +637,9 @@ void convert_cmyk2rgb(float c,float m,float y,float k, unsigned char*r, unsigned
     if(g2<0)g2=0; if(g2>255)g2=255;
     if(b2<0)b2=0; if(b2>255)b2=255;
 
-    *r = r2;
-    *g = g2;
-    *b = b2;
+    *r = (unsigned char)r2;
+    *g = (unsigned char)g2;
+    *b = (unsigned char)b2;
 
     /*f(!check(c,m,y,k, *r/255.0, *g/255.0, *b/255.0)) {
         for(t=0;t<16;t++) {