[ 
https://issues.apache.org/jira/browse/PDFBOX-6008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17952407#comment-17952407
 ] 

Tilman Hausherr edited comment on PDFBOX-6008 at 5/18/25 7:59 AM:
------------------------------------------------------------------

I think it's the caucaine "image" in this PDF which is really a lot of tiny 
images. The exception log is an anomaly, nothing more, here's some details:

 Warning  [PDImageXObject] image : BufferedImage@1e52ee34: type = 1 
DirectColorModel: rmask=ff0000 gmask=ff00 bmask=ff amask=0 
IntegerInterleavedRaster: width = 3 height = 4 #Bands = 3 xOff = 0 yOff = 0 
dataOffset[0] 0
 Warning  [PDImageXObject] image2: BufferedImage@4e6ae9ad: type = 10 
ColorModel: #pixelBits = 8 numComponents = 1 color space = 
java.awt.color.ICC_ColorSpace@131f2861 transparency = 1 has alpha = false 
isAlphaPre = false ByteInterleavedRaster: width = 4 height = 4 #numDataElements 
1 dataOff[0] = 0
 Warning  [PDImageXObject] af    : AffineTransform[[1.333333333333333, 0.0, 
0.0], [0.0, 1.0, 0.0]]

According to the profiler, most time is lost in PDICCBased.loadICCProfile() and 
then in {{new ComponentColorModel}} (which is done only to catch future 
exceptions). 1/4 of it is lost in {{ICC_COlorSpace.toRGB()}}.


was (Author: tilman):
I think it's the caucaine "image" in this PDF which is really a lot of tiny 
images. The exception log is an anomaly, nothing more, here's some details:

 Warning  [PDImageXObject] image : BufferedImage@1e52ee34: type = 1 
DirectColorModel: rmask=ff0000 gmask=ff00 bmask=ff amask=0 
IntegerInterleavedRaster: width = 3 height = 4 #Bands = 3 xOff = 0 yOff = 0 
dataOffset[0] 0
 Warning  [PDImageXObject] image2: BufferedImage@4e6ae9ad: type = 10 
ColorModel: #pixelBits = 8 numComponents = 1 color space = 
java.awt.color.ICC_ColorSpace@131f2861 transparency = 1 has alpha = false 
isAlphaPre = false ByteInterleavedRaster: width = 4 height = 4 #numDataElements 
1 dataOff[0] = 0

According to the profiler, most time is lost in PDICCBased.loadICCProfile() and 
then in {{new ComponentColorModel}} (which is done only to catch future 
exceptions). 1/4 of it is lost in {{ICC_COlorSpace.toRGB()}}.

> PDF takes an hour to render
> ---------------------------
>
>                 Key: PDFBOX-6008
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-6008
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Rendering
>    Affects Versions: 3.0.5 PDFBox
>            Reporter: Daniel Persson
>            Priority: Major
>              Labels: performance
>         Attachments: 72641_585_1_114077_6.pdf
>
>
> This PDF seems to have a lot of small images and other objects, not sure if 
> they are even in the current clipping area.
> {code:java}
> danielp@morgoth ~/pdfwork/fel $ time java -jar 
> /home/danielp/github/pdfbox/app/target/pdfbox-app-3.0.5.jar render 
> --input=72641_585_1_114077_6.pdf 
> May 14, 2025 12:34:54 PM org.apache.pdfbox.pdmodel.font.PDFont loadUnicodeCmap
> WARNING: Invalid ToUnicode CMap in font AAAACC+BentonSans-Regular
> May 14, 2025 1:03:56 PM 
> org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject scaleImage
> WARNING: Unable to transform src image
> java.awt.image.ImagingOpException: Unable to transform src image
>         at 
> java.desktop/java.awt.image.AffineTransformOp.filter(AffineTransformOp.java:287)
>         at 
> org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.scaleImage(PDImageXObject.java:757)
>         at 
> org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.applyMask(PDImageXObject.java:609)
>         at 
> org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.getImage(PDImageXObject.java:473)
>         at 
> org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.getImage(PDImageXObject.java:439)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.drawImage(PageDrawer.java:1253)
>         at 
> org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:78)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:924)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:557)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processTransparencyGroup(PDFStreamEngine.java:260)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.access$1700(PageDrawer.java:124)
>         at 
> org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1914)
>         at 
> org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1744)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroupOnGraphics(PageDrawer.java:1682)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroup(PageDrawer.java:1660)
>         at 
> org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:92)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:924)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:557)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processTransparencyGroup(PDFStreamEngine.java:260)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.access$1700(PageDrawer.java:124)
>         at 
> org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1914)
>         at 
> org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1744)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroupOnGraphics(PageDrawer.java:1682)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroup(PageDrawer.java:1660)
>         at 
> org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:92)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:924)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:557)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processTransparencyGroup(PDFStreamEngine.java:260)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.access$1700(PageDrawer.java:124)
>         at 
> org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1914)
>         at 
> org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1744)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroupOnGraphics(PageDrawer.java:1682)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroup(PageDrawer.java:1660)
>         at 
> org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:92)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:924)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:557)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:515)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:158)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:286)
>         at 
> org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:330)
>         at 
> org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:247)
>         at 
> org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:233)
>         at org.apache.pdfbox.tools.PDFToImage.call(PDFToImage.java:175)
>         at org.apache.pdfbox.tools.PDFToImage.call(PDFToImage.java:51)
>         at picocli.CommandLine.executeUserObject(CommandLine.java:2045)
>         at picocli.CommandLine.access$1500(CommandLine.java:148)
>         at 
> picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2465)
>         at picocli.CommandLine$RunLast.handle(CommandLine.java:2457)
>         at picocli.CommandLine$RunLast.handle(CommandLine.java:2419)
>         at 
> picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
>         at picocli.CommandLine$RunLast.execute(CommandLine.java:2421)
>         at picocli.CommandLine.execute(CommandLine.java:2174)
>         at org.apache.pdfbox.tools.PDFBox.main(PDFBox.java:76)
> May 14, 2025 1:13:09 PM 
> org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject scaleImage
> WARNING: Unable to transform src image
> java.awt.image.ImagingOpException: Unable to transform src image
>         at 
> java.desktop/java.awt.image.AffineTransformOp.filter(AffineTransformOp.java:287)
>         at 
> org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.scaleImage(PDImageXObject.java:757)
>         at 
> org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.applyMask(PDImageXObject.java:609)
>         at 
> org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.getImage(PDImageXObject.java:473)
>         at 
> org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.getImage(PDImageXObject.java:439)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.drawImage(PageDrawer.java:1253)
>         at 
> org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:78)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:924)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:557)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processTransparencyGroup(PDFStreamEngine.java:260)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.access$1700(PageDrawer.java:124)
>         at 
> org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1914)
>         at 
> org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1744)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroupOnGraphics(PageDrawer.java:1682)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroup(PageDrawer.java:1660)
>         at 
> org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:92)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:924)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:557)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processTransparencyGroup(PDFStreamEngine.java:260)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.access$1700(PageDrawer.java:124)
>         at 
> org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1914)
>         at 
> org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1744)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroupOnGraphics(PageDrawer.java:1682)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroup(PageDrawer.java:1660)
>         at 
> org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:92)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:924)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:557)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:515)
>         at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:158)
>         at 
> org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:286)
>         at 
> org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:330)
>         at 
> org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:247)
>         at 
> org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:233)
>         at org.apache.pdfbox.tools.PDFToImage.call(PDFToImage.java:175)
>         at org.apache.pdfbox.tools.PDFToImage.call(PDFToImage.java:51)
>         at picocli.CommandLine.executeUserObject(CommandLine.java:2045)
>         at picocli.CommandLine.access$1500(CommandLine.java:148)
>         at 
> picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2465)
>         at picocli.CommandLine$RunLast.handle(CommandLine.java:2457)
>         at picocli.CommandLine$RunLast.handle(CommandLine.java:2419)
>         at 
> picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
>         at picocli.CommandLine$RunLast.execute(CommandLine.java:2421)
>         at picocli.CommandLine.execute(CommandLine.java:2174)
>         at org.apache.pdfbox.tools.PDFBox.main(PDFBox.java:76)
> real    53m25.609s
> user    53m48.505s
> sys     0m2.429s {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: dev-h...@pdfbox.apache.org

Reply via email to