Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
204c9d6ae1 |
@@ -12,6 +12,12 @@ may be unreliable. Use the API to depend on precise behavior.
|
|||||||
The public API may be useful in scripts that launch OCRmyPDF processes or that
|
The public API may be useful in scripts that launch OCRmyPDF processes or that
|
||||||
wish to use some of its features for working with PDFs.
|
wish to use some of its features for working with PDFs.
|
||||||
|
|
||||||
|
v11.2.1
|
||||||
|
=======
|
||||||
|
|
||||||
|
- Fixed an issue where optimization of a 1-bit image with a color palette or
|
||||||
|
associated ICC that was optimized to JBIG2 could have its colors inverted.
|
||||||
|
|
||||||
v11.2.0
|
v11.2.0
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
|||||||
@@ -116,12 +116,23 @@ def extract_image_jbig2(
|
|||||||
and jbig2enc.available()
|
and jbig2enc.available()
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
|
# Save any colorspace associated with the image, so that we
|
||||||
|
# will export a pure 1-bit PNG with no palette or ICC profile.
|
||||||
|
# Showing the palette or ICC to jbig2enc will cause it to perform
|
||||||
|
# colorspace transform to 1bpp, which will conflict the palette or
|
||||||
|
# ICC if it exists.
|
||||||
|
colorspace = pim.obj.ColorSpace
|
||||||
|
# Set to DeviceGray temporarily; we already in 1 bpc.
|
||||||
|
pim.obj.ColorSpace = pikepdf.Name.DeviceGray
|
||||||
imgname = root / f'{xref:08d}'
|
imgname = root / f'{xref:08d}'
|
||||||
with imgname.open('wb') as f:
|
with imgname.open('wb') as f:
|
||||||
ext = pim.extract_to(stream=f)
|
ext = pim.extract_to(stream=f)
|
||||||
imgname.rename(imgname.with_suffix(ext))
|
imgname.rename(imgname.with_suffix(ext))
|
||||||
except pikepdf.UnsupportedImageTypeError:
|
except pikepdf.UnsupportedImageTypeError:
|
||||||
return None
|
return None
|
||||||
|
finally:
|
||||||
|
# Restore image colorspace after temporarily setting it to DeviceGray
|
||||||
|
pim.obj.ColorSpace = colorspace
|
||||||
return XrefExt(xref, ext)
|
return XrefExt(xref, ext)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user