Details
-
Improvement
-
Status: Closed
-
Trivial
-
Resolution: Fixed
-
2.0.26
-
None
Description
When {}`PDImageXObject.getImage()` gets invoked with subsampling and region, internally it loads the entire mask into memory: https://github.com/apache/pdfbox/blob/961c052d52dd9ab2dd3d7cd762a5046e5cc85a91/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java#L465
and applies the entire mask on the subsampled image.
Which is extra work and can cause `OOM` exceptions.
The proposed optimisation is to pass `region` and `subsampling` params to `PDImageXObject.getOpaqueImage() `here - https://github.com/apache/pdfbox/blob/961c052d52dd9ab2dd3d7cd762a5046e5cc85a91/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java#L548
such that masks are also subsampled before applying them...
Attachments
Attachments
Issue Links
- links to