You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2026/06/15 19:55:31 UTC

svn commit: r1935389 - pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering

Author: tilman
Date: Mon Jun 15 19:55:31 2026
New Revision: 1935389

Log:
PDFBOX-5660: optimize, as suggested by Valery Bokov; closes #476

Modified:
   pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java	Mon Jun 15 19:55:28 2026	(r1935388)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java	Mon Jun 15 19:55:31 2026	(r1935389)
@@ -1487,13 +1487,15 @@ public class PageDrawer extends PDFGraph
     private BufferedImage applyTransferFunction(BufferedImage image, COSBase transfer) throws IOException
     {
         BufferedImage bim;
+        int imageWidth = image.getWidth();
+        int imageHeight = image.getHeight();
         if (image.getColorModel().hasAlpha())
         {
-            bim = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_ARGB);
+            bim = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_ARGB);
         }
         else
         {
-            bim = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
+            bim = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_RGB);
         }
 
         // prepare transfer functions (either one per color or one for all) 
@@ -1526,9 +1528,9 @@ public class PageDrawer extends PDFGraph
 
         // apply the transfer function to each color, but keep alpha
         float[] input = new float[1];
-        for (int x = 0; x < image.getWidth(); ++x)
+        for (int x = 0; x < imageWidth; ++x)
         {
-            for (int y = 0; y < image.getHeight(); ++y)
+            for (int y = 0; y < imageHeight; ++y)
             {
                 int rgb = image.getRGB(x, y);
                 int ri = (rgb >> 16) & 0xFF;