}
+static unsigned char *
+rgb_to_rgbw_line(unsigned char *src,
+ unsigned char *dst,
+ unsigned int row,
+ unsigned int pixels,
+ pclmtoraster_data_t *data)
+{
+ cfImageRGBToCMYK(src, dst, pixels);
+ for (unsigned int i = 0; i < 4 * pixels; i ++)
+ dst[i] = ~dst[i];
+ return (dst);
+}
+
+
static unsigned char *
rgb_to_cmyk_line(unsigned char *src,
unsigned char *dst,
}
+static unsigned char *
+cmyk_to_rgbw_line(unsigned char *src,
+ unsigned char *dst,
+ unsigned int row,
+ unsigned int pixels,
+ pclmtoraster_data_t *data)
+{
+ for (unsigned int i = 0; i < 4 * pixels; i ++)
+ dst[i] = ~src[i];
+ return (dst);
+}
+
+
static unsigned char *
cmyk_to_cmy_line(unsigned char *src,
unsigned char *dst,
}
+static unsigned char *
+gray_to_rgbw_line(unsigned char *src,
+ unsigned char *dst,
+ unsigned int row,
+ unsigned int pixels,
+ pclmtoraster_data_t *data)
+{
+ cfImageWhiteToCMYK(src, dst, pixels);
+ for (unsigned int i = 0; i < 4 * pixels; i ++)
+ dst[i] = ~dst[i];
+ return (dst);
+}
+
+
static unsigned char *
gray_to_cmyk_line(unsigned char *src,
unsigned char *dst,
else if (colorspace == "/DeviceGray")
convert->convertcspace = gray_to_cmyk_line;
break;
+ case CUPS_CSPACE_RGBW:
+ if (colorspace == "/DeviceRGB")
+ convert->convertcspace = rgb_to_rgbw_line;
+ else if (colorspace == "/DeviceCMYK")
+ convert->convertcspace = cmyk_to_rgbw_line;
+ else if (colorspace == "/DeviceGray")
+ convert->convertcspace = gray_to_rgbw_line;
+ break;
case CUPS_CSPACE_RGB:
case CUPS_CSPACE_ADOBERGB:
case CUPS_CSPACE_SRGB:
&(paperdimensions[0]), &(paperdimensions[1]),
&(margins[0]), &(margins[1]),
&(margins[2]), &(margins[3]), NULL, NULL);
- if (data->outformat == CF_FILTER_OUT_FORMAT_PWG_RASTER)
+ if (data->outformat != CF_FILTER_OUT_FORMAT_CUPS_RASTER)
memset(margins, 0, sizeof(margins));
}
else