diff options
-rw-r--r-- | source/fitz/separation.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/source/fitz/separation.c b/source/fitz/separation.c index fd86b1df..04ee5ebb 100644 --- a/source/fitz/separation.c +++ b/source/fitz/separation.c @@ -759,15 +759,19 @@ fz_copy_pixmap_area_converting_seps(fz_context *ctx, fz_pixmap *dst, fz_pixmap * * remain unmapped? */ if (unmapped) { + int m; /* Still need to handle mapping 'lost' spots down to process colors */ - for (i = 0; i < sseps_n; i++) + for (i = -1, m = 0; m < sseps_n; m++) { float convert[FZ_MAX_COLORS]; - if (mapped[i]) + if (mapped[m]) continue; - /* Src spot i is not mapped. We need to convert that down. */ - fz_separation_equivalent(ctx, sseps, i, color_params, dst->colorspace, proof_cs, convert); + if (fz_separation_current_behavior(ctx, sseps, m) != FZ_SEPARATION_SPOT) + continue; + i++; + /* Src spot m (the i'th one) is not mapped. We need to convert that down. */ + fz_separation_equivalent(ctx, sseps, m, color_params, dst->colorspace, proof_cs, convert); if (fz_colorspace_is_subtractive(ctx, dst->colorspace)) { |