diff options
-rw-r--r-- | gs/base/gdevpsd.c | 8 |
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 +} |