diff options
author | Robin Watts <robin.watts@artifex.com> | 2017-10-16 13:44:52 +0100 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2017-10-24 15:16:36 +0100 |
commit | c413f4db6a54846ae85393a87fa1b53b93a966ee (patch) | |
tree | 3a06363e8f0570cc139e8cf486f2d9b00c0c52cd /source/fitz/separation.c | |
parent | c7c407b57a6e1aa5b1a11034ec7cb308cf4ad3c4 (diff) | |
download | mupdf-c413f4db6a54846ae85393a87fa1b53b93a966ee.tar.xz |
Add support for use of proofing profile.
This is a first cut to get us to demo-ability. There will
likely be a few changes as we do a bit more testing with different
scenarios with Gray, RGB, CMYK combos of destination, proof and
output intent ICC profiles.
Diffstat (limited to 'source/fitz/separation.c')
-rw-r--r-- | source/fitz/separation.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/source/fitz/separation.c b/source/fitz/separation.c index ba3ab96e..5f8fee41 100644 --- a/source/fitz/separation.c +++ b/source/fitz/separation.c @@ -242,10 +242,6 @@ fz_clone_pixmap_area_with_different_seps(fz_context *ctx, fz_pixmap *src, const { fz_irect local_bbox; fz_pixmap *dst; - fz_colorspace *oi = fz_default_output_intent(ctx, default_cs); - - if (fz_colorspace_n(ctx, dcs) == fz_colorspace_n(ctx, oi)) - dcs = oi; if (bbox == NULL) { @@ -291,6 +287,7 @@ fz_copy_pixmap_area_converting_seps(fz_context *ctx, fz_pixmap *dst, fz_pixmap * unsigned char mapped[FZ_MAX_COLORS]; int unmapped = sseps_n; int device_n = 0; + fz_colorspace *proof_cs = (prf == src->colorspace ? NULL : prf); assert(da == sa); assert(ss == fz_count_active_separations(ctx, sseps)); @@ -300,7 +297,7 @@ fz_copy_pixmap_area_converting_seps(fz_context *ctx, fz_pixmap *dst, fz_pixmap * sstride -= sn * dw; /* Process colorants first */ - if (dst->colorspace == src->colorspace) + if (dst->colorspace == src->colorspace && proof_cs == NULL) { /* Simple copy */ unsigned char *dd = ddata; @@ -327,7 +324,7 @@ fz_copy_pixmap_area_converting_seps(fz_context *ctx, fz_pixmap *dst, fz_pixmap * { fz_pixmap_converter *pc = fz_lookup_pixmap_converter(ctx, dst->colorspace, src->colorspace); - pc(ctx, dst, src, prf, default_cs, NULL, 0); + pc(ctx, dst, src, proof_cs, default_cs, NULL, 0); } } @@ -398,7 +395,7 @@ fz_copy_pixmap_area_converting_seps(fz_context *ctx, fz_pixmap *dst, fz_pixmap * if (mapped[i]) continue; /* Src spot i is not mapped. We need to convert that down. */ - fz_separation_equivalent(ctx, sseps, i, color_params, dst->colorspace, prf, convert); + fz_separation_equivalent(ctx, sseps, i, color_params, dst->colorspace, proof_cs, convert); if (fz_colorspace_is_subtractive(ctx, dst->colorspace)) { @@ -491,7 +488,7 @@ fz_copy_pixmap_area_converting_seps(fz_context *ctx, fz_pixmap *dst, fz_pixmap * int n = fz_colorspace_n(ctx, src->colorspace); fz_color_converter cc; - fz_find_color_converter(ctx, &cc, prf, dst->colorspace, src->colorspace, color_params); + fz_find_color_converter(ctx, &cc, proof_cs, dst->colorspace, src->colorspace, color_params); fz_try(ctx) { |