for move type placeobject, always set matrix and cxform
[swftools.git] / pdf2swf / xpdf / GfxState.cc
index 5aa9c28..33c96cc 100644 (file)
@@ -21,6 +21,7 @@
 #include "Array.h"
 #include "Page.h"
 #include "GfxState.h"
+#include "cmyk.h"
 
 //------------------------------------------------------------------------
 
@@ -434,7 +435,18 @@ void GfxDeviceCMYKColorSpace::getGray(GfxColor *color, double *gray) {
                 - 0.114 * color->c[2]);
 }
 
-void GfxDeviceCMYKColorSpace::getRGB(GfxColor *color, GfxRGB *rgb) {
+/*void GfxDeviceCMYKColorSpace::getRGB(GfxColor *color, GfxRGB *rgb) {
+    double c,m,y,k,white;
+    c = color->c[0];
+    m = color->c[1];
+    y = color->c[2];
+    k = color->c[3];
+    white = 1.0 - k;
+    rgb->r = white - (c*white);
+    rgb->g = white - (m*white);
+    rgb->b = white - (y*white);
+}*/
+/*void GfxDeviceCMYKColorSpace::getRGB(GfxColor *color, GfxRGB *rgb) {
   double c, m, y, aw, ac, am, ay, ar, ag, ab;
 
   c = clip01(color->c[0] + color->c[3]);
@@ -449,8 +461,18 @@ void GfxDeviceCMYKColorSpace::getRGB(GfxColor *color, GfxRGB *rgb) {
   ab = c * m * (1-y);
   rgb->r = clip01(aw + 0.9137*am + 0.9961*ay + 0.9882*ar);
   rgb->g = clip01(aw + 0.6196*ac + ay + 0.5176*ag);
-  rgb->b = clip01(aw + 0.7804*ac + 0.5412*am + 0.0667*ar + 0.2118*ag +
-                 0.4863*ab);
+  rgb->b = clip01(aw + 0.7804*ac + 0.5412*am + 0.0667*ar + 0.2118*ag + 0.4863*ab);
+}*/
+void GfxDeviceCMYKColorSpace::getRGB(GfxColor *color, GfxRGB *rgb) {
+    unsigned char r,g,b;
+    float c = color->c[0];
+    float m = color->c[1];
+    float y = color->c[2];
+    float k = color->c[3];
+    convert_cmyk2rgb(c,m,y,k, &r,&g,&b);
+    rgb->r = r/255.0;
+    rgb->g = g/255.0;
+    rgb->b = b/255.0;
 }
 
 void GfxDeviceCMYKColorSpace::getCMYK(GfxColor *color, GfxCMYK *cmyk) {