diff options
-rw-r--r-- | source/fitz/load-jpx.c | 10 | ||||
-rw-r--r-- | source/pdf/pdf-image.c | 10 |
2 files changed, 9 insertions, 11 deletions
diff --git a/source/fitz/load-jpx.c b/source/fitz/load-jpx.c index dfb89f41..dd7bf9e1 100644 --- a/source/fitz/load-jpx.c +++ b/source/fitz/load-jpx.c @@ -75,7 +75,6 @@ fz_pixmap * fz_load_jpx(fz_context *ctx, unsigned char *data, int size, fz_colorspace *defcs, int indexed) { fz_pixmap *img; - fz_colorspace *origcs; opj_dparameters_t params; opj_codec_t *codec; opj_image_t *jpx; @@ -179,7 +178,6 @@ fz_load_jpx(fz_context *ctx, unsigned char *data, int size, fz_colorspace *defcs else if (n > 4) { n = 4; a = 1; } else { a = 0; } - origcs = defcs; if (defcs) { if (defcs->n == n) @@ -246,13 +244,5 @@ fz_load_jpx(fz_context *ctx, unsigned char *data, int size, fz_colorspace *defcs fz_premultiply_pixmap(ctx, img); } - if (origcs != defcs) - { - fz_pixmap *tmp = fz_new_pixmap(ctx, origcs, w, h); - fz_convert_pixmap(ctx, tmp, img); - fz_drop_pixmap(ctx, img); - img = tmp; - } - return img; } diff --git a/source/pdf/pdf-image.c b/source/pdf/pdf-image.c index bb663ba2..9f4195e4 100644 --- a/source/pdf/pdf-image.c +++ b/source/pdf/pdf-image.c @@ -40,7 +40,15 @@ pdf_load_image_imp(pdf_document *doc, pdf_obj *rdb, pdf_obj *dict, fz_stream *cs { fz_pixmap *mask_pixmap; if (image->n != 2) - fz_throw(ctx, FZ_ERROR_GENERIC, "soft mask must be grayscale"); + { + fz_pixmap *gray; + fz_irect bbox; + fz_warn(ctx, "soft mask should be grayscale"); + gray = fz_new_pixmap_with_bbox(ctx, fz_device_gray(ctx), fz_pixmap_bbox(ctx, image->tile, &bbox)); + fz_convert_pixmap(ctx, gray, image->tile); + fz_drop_pixmap(ctx, image->tile); + image->tile = gray; + } mask_pixmap = fz_alpha_from_gray(ctx, image->tile, 1); fz_drop_pixmap(ctx, image->tile); image->tile = mask_pixmap; |