Author: tilman
Date: Mon Jun 15 19:55:34 2026
New Revision: 1935390
Log:
PDFBOX-5660: optimize, as suggested by Valery Bokov; closes #476
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
Mon Jun 15 19:55:31 2026 (r1935389)
+++
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
Mon Jun 15 19:55:34 2026 (r1935390)
@@ -1405,13 +1405,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)
@@ -1444,9 +1446,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;