diff --git a/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java b/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java index cbcae0ea09e..aab236cc110 100644 --- a/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java +++ b/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java @@ -285,10 +285,14 @@ private static void readRasterFromAny(PDImage pdImage, WritableRaster raster) 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,10 +502,11 @@ private static BufferedImage from8bit(PDImage pdImage, WritableRaster raster, Re { // 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) + long tmpResult = (long) width * height * numComponents; + if (inputResult != tmpResult) { LOG.debug("Tried reading {} bytes but only {} bytes read", - (long) width * height * numComponents, inputResult); + tmpResult, inputResult); } return pdImage.getColorSpace().toRGBImage(raster); }