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 2025/12/10 11:29:44 UTC

svn commit: r1930424 - pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/rendering

Author: tilman
Date: Wed Dec 10 11:29:43 2025
New Revision: 1930424

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

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

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
==============================================================================
--- pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java	Wed Dec 10 10:48:10 2025	(r1930423)
+++ pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java	Wed Dec 10 11:29:43 2025	(r1930424)
@@ -610,12 +610,13 @@ public class PageDrawer extends PDFGraph
             return parentPaint;
         }
         PDColor backdropColor = null;
-        if (COSName.LUMINOSITY.equals(softMask.getSubType()))
+        COSName subType = softMask.getSubType();
+        PDTransparencyGroup form = softMask.getGroup();
+        if (COSName.LUMINOSITY.equals(subType))
         {
             COSArray backdropColorArray = softMask.getBackdropColor();
             if (backdropColorArray != null)
             {
-                PDTransparencyGroup form = softMask.getGroup();
                 PDColorSpace colorSpace = form.getGroup().getColorSpace(form.getResources());
                 if (colorSpace != null &&
                     colorSpace.getNumberOfComponents() == backdropColorArray.size()) // PDFBOX-5795
@@ -624,7 +625,7 @@ public class PageDrawer extends PDFGraph
                 }
             }
         }
-        TransparencyGroup transparencyGroup = new TransparencyGroup(softMask.getGroup(), true, 
+        TransparencyGroup transparencyGroup = new TransparencyGroup(form, true, 
                 softMask.getInitialTransformationMatrix(), backdropColor);
         BufferedImage image = transparencyGroup.getImage();
         if (image == null)
@@ -634,11 +635,11 @@ public class PageDrawer extends PDFGraph
             return parentPaint;
         }
         BufferedImage gray = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
-        if (COSName.ALPHA.equals(softMask.getSubType()))
+        if (COSName.ALPHA.equals(subType))
         {
             gray.setData(image.getAlphaRaster());
         }
-        else if (COSName.LUMINOSITY.equals(softMask.getSubType()))
+        else if (COSName.LUMINOSITY.equals(subType))
         {
             Graphics g = gray.getGraphics();
             g.drawImage(image, 0, 0, null);
@@ -646,7 +647,7 @@ public class PageDrawer extends PDFGraph
         }
         else
         {
-            throw new IOException("Invalid soft mask subtype.");
+            throw new IOException("Invalid soft mask subtype: " + subType);
         }
         gray = adjustImage(gray);