Author: tilman
Date: Sun Mar 22 11:09:21 2026
New Revision: 1932456

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

Modified:
   
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java
  Sun Mar 22 11:09:16 2026        (r1932455)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java
  Sun Mar 22 11:09:21 2026        (r1932456)
@@ -285,10 +285,14 @@ final class SampledImageReader
                 final boolean isIndexed = colorSpace instanceof PDIndexed;
 
                 // calculate row padding
-                int padding = 0;
-                if (inputWidth * numComponents * bitsPerComponent % 8 > 0)
+                int padding = inputWidth * numComponents * bitsPerComponent % 
8;
+                if (padding > 0)
                 {
-                    padding = 8 - (inputWidth * numComponents * 
bitsPerComponent % 8);
+                    padding = 8 - padding;
+                }
+                else
+                {
+                    padding = 0;
                 }
 
                 // read stream
@@ -498,7 +502,7 @@ final class SampledImageReader
             {
                 // we just need to copy all sample data, then convert to RGB 
image.
                 int inputResult = input.readNBytes(bank, 0, bank.length);
-                if (inputResult != (long) width * height * numComponents)
+                if (LOG.isDebugEnabled() && inputResult != (long) width * 
height * numComponents)
                 {
                     LOG.debug("Tried reading {} bytes but only {} bytes read",
                             (long) width * height * numComponents, 
inputResult);
@@ -616,10 +620,14 @@ final class SampledImageReader
                 }
 
                 // calculate row padding
-                int padding = 0;
-                if (inputWidth * numComponents * bitsPerComponent % 8 > 0)
+                int padding = inputWidth * numComponents * bitsPerComponent % 
8;
+                if (padding > 0)
+                {
+                    padding = 8 - padding;
+                }
+                else
                 {
-                    padding = 8 - (inputWidth * numComponents * 
bitsPerComponent % 8);
+                    padding = 0;
                 }
 
                 // read stream

Reply via email to