summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2017-12-06 16:38:00 +0000
committerRobin Watts <robin.watts@artifex.com>2017-12-06 17:07:55 +0000
commiteb9afa2f46192b86352caded1ae56e79ed64dd4a (patch)
tree4b1a21d3d0fcb91cbdab4756fb4744c61d8650de
parentb7749e563f93160de82c97fe34fb3fb0d3396304 (diff)
downloadmupdf-eb9afa2f46192b86352caded1ae56e79ed64dd4a.tar.xz
Bug 698801: Always copy background in when clipping an imagemask.
Don't attempt to rely on alpha, as it is incompatible with the way we clip through the mask at the end.
-rw-r--r--source/fitz/draw-device.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/source/fitz/draw-device.c b/source/fitz/draw-device.c
index 55c9e408..09470ea5 100644
--- a/source/fitz/draw-device.c
+++ b/source/fitz/draw-device.c
@@ -1714,8 +1714,6 @@ fz_draw_fill_image(fz_context *ctx, fz_device *devp, fz_image *image, const fz_m
state = push_group_for_separations(ctx, dev, color_params, dev->default_cs);
model = state->dest->colorspace;
- model = state->dest->colorspace;
-
fz_intersect_irect(fz_pixmap_bbox(ctx, state->dest, &clip), &state->scissor);
if (image->w == 0 || image->h == 0)
@@ -1992,15 +1990,8 @@ fz_draw_clip_image_mask(fz_context *ctx, fz_device *devp, fz_image *image, const
state[1].mask = fz_new_pixmap_with_bbox(ctx, NULL, &bbox, NULL, 1);
fz_clear_pixmap(ctx, state[1].mask);
- /* When there is no alpha in the current destination (state[0].dest->alpha == 0)
- * we have a choice. We can either create the new destination WITH alpha, or
- * we can copy the old pixmap contents in. We opt for the latter here, but
- * may want to revisit this decision in the future. */
state[1].dest = fz_new_pixmap_with_bbox(ctx, model, &bbox, state[0].dest->seps, state[0].dest->alpha);
- if (state[0].dest->alpha)
- fz_clear_pixmap(ctx, state[1].dest);
- else
- fz_copy_pixmap_rect(ctx, state[1].dest, state[0].dest, &bbox, dev->default_cs);
+ fz_copy_pixmap_rect(ctx, state[1].dest, state[0].dest, &bbox, dev->default_cs);
if (state[0].shape)
{
state[1].shape = fz_new_pixmap_with_bbox(ctx, NULL, &bbox, NULL, 1);