summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gs/base/gdevpsd.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gs/base/gdevpsd.c b/gs/base/gdevpsd.c
index 8251bcd73..5a640e7ca 100644
--- a/gs/base/gdevpsd.c
+++ b/gs/base/gdevpsd.c
@@ -630,7 +630,7 @@ psd_encode_color(gx_device *dev, const gx_color_value colors[])
COLROUND_SETUP(bpc);
for (; i<ncomp; i++) {
color <<= bpc;
- color |= COLROUND_ROUND(colors[i]);
+ color |= COLROUND_ROUND(colors[ncomp-1-i]);
}
return (color == gx_no_color_index ? color ^ 1 : color);
}
@@ -649,7 +649,7 @@ psd_decode_color(gx_device * dev, gx_color_index color, gx_color_value * out)
COLDUP_SETUP(bpc);
for (; i<ncomp; i++) {
- out[ncomp - i - 1] = COLDUP_DUP(color & mask);
+ out[i] = COLDUP_DUP(color & mask);
color >>= bpc;
}
return 0;
@@ -1311,7 +1311,7 @@ psd_write_image_data(psd_write_ctx *xc, gx_device_printer *pdev)
// if (link == NULL) {
if (base_bytes_pp == 3) {
/* RGB */
- memcpy(unpacked, sep_line, xc->width);
+ memcpy(sep_line, unpacked, xc->width);
} else {
for (i = 0; i < xc->width; ++i) {
/* CMYK + spots*/
@@ -1359,4 +1359,4 @@ psd_print_page(gx_device_printer *pdev, FILE *file)
free_separation_names(pdev->memory, &(psd_dev->devn_params.separations));
psd_dev->devn_params.num_separation_order_names = 0;
return 0;
-} \ No newline at end of file
+}