From 99653fcd32445a4e37a3ba30f2cb8704098ab05d Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Sun, 15 Mar 2020 02:20:44 -0700 Subject: [PATCH] optimize: consider ICCBased 1 bit for optimization --- src/ocrmypdf/optimize.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/ocrmypdf/optimize.py b/src/ocrmypdf/optimize.py index 72022741..839a8ff9 100644 --- a/src/ocrmypdf/optimize.py +++ b/src/ocrmypdf/optimize.py @@ -155,6 +155,17 @@ def extract_image_generic(*, pike, root, log, image, xref, options): # generating a PNG from compressed data pim.as_pil_image().save(png_name(root, xref)) return xref, '.png' + elif ( + not pim.indexed + and pim.colorspace == Name.ICCBased + and pim.bits_per_component == 1 + and not options.jbig2_lossy + ): + # We can losslessly optimize 1-bit images to CCITT or JBIG2 without + # paying any attention to the ICC profile, provided we're not doing + # lossy JBIG2 + pim.as_pil_image().save(png_name(root, xref)) + return xref, '.png' return None