diff mbox series

[meta-python,1/3] python3-pikepdf: Upgrade 10.9.1 -> 10.10.0

Message ID 20260715141507.3352685-1-leon.anavi@konsulko.com
State New
Headers show
Series [meta-python,1/3] python3-pikepdf: Upgrade 10.9.1 -> 10.10.0 | expand

Commit Message

Leon Anavi July 15, 2026, 2:15 p.m. UTC
Upgrade to release 10.10.0:

- {meth}pikepdf.PdfImage.as_pil_image and
  {meth}pikepdf.PdfImage.extract_to now apply an image's soft mask
  (/SMask) or explicit/colour-key mask
- (/Mask) by default, returning an image with an alpha channel (LA
  or RGBA) and writing a transparency-capable format (.png).
  Previously the mask was silently ignored and the opaque base
  image was returned. Images without a mask are unaffected. Pass
  apply_mask=False to recover the old behavior and obtain only the
  opaque base image.
- Image masking is now honored when extracting images. /SMask soft
  masks, /Mask stencil (explicit) masks, and /Mask colour-key masks
  are composited into an alpha channel. Soft-mask images whose
  resolution differs from the base image are resampled to match
  (ISO 32000-2 ยง8.9.6).
- Added support for /CalRGB, /CalGray and /CalCMYK images, which
  previously raised NotImplementedError. The samples are decoded as
  their device equivalents, and for CalRGB/CalGray an ICC profile
  synthesized from the colour space's WhitePoint/Gamma/Matrix is
  attached to the extracted image so the calibration is preserved
  for colour-managed consumers.
- Added support for the /Lab colour space, extracted as a Pillow
  LAB image (saved as TIFF) with the PDF L*/a*/b* ranges remapped
  to Pillow's conventions.
- Added support for 16-bit-per-component images. 16-bit grayscale
  is extracted losslessly as Pillow I;16; 16-bit RGB and CMYK are
  reduced to 8-bit (with a warning) because Pillow has no
  higher-bit-depth raw mode for them.
- Extended colour-space handling to several cases that previously
  raised NotImplementedError: ICCBased CMYK images and indexed
  images now produce the correct default /Decode array, and inline
  images that name their colour space now resolve it from the
  in-scope /Resources when obtained via
  {func}pikepdf.parse_content_stream.
- JPEG (/DCTDecode) images with a non-default /ColorTransform -- a
  YCCK CMYK or a non-YCbCr RGB JPEG -- are now decoded via Pillow
  (which honours the JPEG's own markers) and transcoded, instead of
  failing to extract.
- Filter chains that wrap a single terminal image codec (/DCTDecode,
  /CCITTFaxDecode, /JPXDecode, /JBIG2Decode) in any number of
  generalized/specialized filters (Flate, LZW, ASCII85/Hex,
  RunLength) are now peeled and extracted seamlessly.
- Added {attr}pikepdf.PdfImage.MAX_IMAGE_PIXELS, a settable
  class-level limit on the number of pixels pikepdf will decode
  from a single image. Until set, it defaults to max(500_000_000,
  PIL.Image.MAX_IMAGE_PIXELS) -- a floor suited to high-DPI scanned
  PDFs -- and tracks Pillow's setting; once assigned it becomes
  independent of Pillow. Set it to None to disable the check.
- {class}pikepdf.Array now implements the standard Python list
  interface: slicing (including del on slices and slice assignment),
  and the clear(), count(), index(), insert(), pop(), remove(),
  and reverse() methods.

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
---
 .../{python3-pikepdf_10.9.1.bb => python3-pikepdf_10.10.0.bb}   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
 rename meta-python/recipes-devtools/python/{python3-pikepdf_10.9.1.bb => python3-pikepdf_10.10.0.bb} (90%)
diff mbox series

Patch

diff --git a/meta-python/recipes-devtools/python/python3-pikepdf_10.9.1.bb b/meta-python/recipes-devtools/python/python3-pikepdf_10.10.0.bb
similarity index 90%
rename from meta-python/recipes-devtools/python/python3-pikepdf_10.9.1.bb
rename to meta-python/recipes-devtools/python/python3-pikepdf_10.10.0.bb
index a0ab6f275a..7355c68c8b 100644
--- a/meta-python/recipes-devtools/python/python3-pikepdf_10.9.1.bb
+++ b/meta-python/recipes-devtools/python/python3-pikepdf_10.10.0.bb
@@ -3,7 +3,7 @@  HOMEPAGE = "https://github.com/pikepdf/pikepdf"
 LICENSE = "MPL-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9741c346eef56131163e13b9db1241b3"
 
-SRC_URI[sha256sum] = "410fcf32bc9c8a0a96d94bbd6268ba7585333b1423b93a5fa2ef3c05f4eba3da"
+SRC_URI[sha256sum] = "9f134806b2fe608ccb21379a664ddcefeac3f6944100d343b350299d3c69754e"
 
 SRC_URI += "file://0001-pyproject.toml-Do-not-strip.patch"