From c0748dcfd77362ba92472f5431624a1e82e1bc18 Mon Sep 17 00:00:00 2001 From: Harald Kuhr Date: Tue, 17 Nov 2020 22:57:25 +0100 Subject: [PATCH] #330 Now correctly calculates scanline for 1 & 4 bits (cherry picked from commit 918f92aba7fb20d5394cecd75fce2e1d64f5daea) --- .../com/twelvemonkeys/imageio/plugins/bmp/DIBImageReader.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/DIBImageReader.java b/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/DIBImageReader.java index 864e6f81..6591b35d 100644 --- a/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/DIBImageReader.java +++ b/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/DIBImageReader.java @@ -363,7 +363,7 @@ abstract class DIBImageReader extends ImageReaderBase { } private void readBitmapIndexed1(final BitmapIndexed pBitmap, final boolean pAsMask) throws IOException { - int width = adjustToPadding(pBitmap.getWidth() >> 3); + int width = adjustToPadding((pBitmap.getWidth() + 7) >> 3); byte[] row = new byte[width]; for (int y = 0; y < pBitmap.getHeight(); y++) { @@ -397,7 +397,7 @@ abstract class DIBImageReader extends ImageReaderBase { } private void readBitmapIndexed4(final BitmapIndexed pBitmap) throws IOException { - int width = adjustToPadding(pBitmap.getWidth() >> 1); + int width = adjustToPadding((pBitmap.getWidth() + 1) >> 1); byte[] row = new byte[width]; for (int y = 0; y < pBitmap.getHeight(); y++) {