Author: tilman
Date: Sun Mar 22 11:09:16 2026
New Revision: 1932455
Log:
PDFBOX-5660: optimize, as suggested by Valery Bokov; closes #425
Modified:
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java
Modified:
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java
==============================================================================
---
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java
Sun Mar 22 10:05:06 2026 (r1932454)
+++
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java
Sun Mar 22 11:09:16 2026 (r1932455)
@@ -286,10 +286,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
@@ -499,7 +503,7 @@ final class SampledImageReader
{
// we just need to copy all sample data, then convert to RGB
image.
long inputResult = IOUtils.populateBuffer(input, bank);
- if (Long.compare(inputResult, (long) width * height *
numComponents) != 0)
+ if (LOG.isDebugEnabled() && Long.compare(inputResult, (long)
width * height * numComponents) != 0)
{
LOG.debug("Tried reading " + (long) width * height *
numComponents + " bytes but only " + inputResult + " bytes read");
}
@@ -615,10 +619,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