Fix getNextChangingElement

The Testimage is distored without this change.
lastChangchingElement must be reduced by 2 as sometimes the nextChanchingElement is bevore the last chanching element. Reset the last bits does not work if the number is higher.
This commit is contained in:
Oliver Schmidtmer 2016-05-24 16:39:59 +02:00
parent d4c9d53ea5
commit ceb2c82e5c
3 changed files with 6 additions and 1 deletions

View File

@ -221,7 +221,11 @@ final class CCITTFaxDecoderStream extends FilterInputStream {
} }
private int getNextChangingElement(final int a0, final boolean white) throws IOException { private int getNextChangingElement(final int a0, final boolean white) throws IOException {
int start = (lastChangingElement & 0xFFFF_FFFC) + (white ? 0 : 1); int start = (lastChangingElement & 0xFFFF_FFFE) + (white ? 0 : 1);
if (start > 2) {
start -= 2;
}
if (a0 == 0) { if (a0 == 0) {
return start; return start;
} }

View File

@ -97,6 +97,7 @@ public class TIFFImageReaderTest extends ImageReaderAbstractTest<TIFFImageReader
new TestData(getClassLoaderResource("/tiff/ccitt/group4.tif"), new Dimension(6, 4)), // B/W, CCITT T6 1D new TestData(getClassLoaderResource("/tiff/ccitt/group4.tif"), new Dimension(6, 4)), // B/W, CCITT T6 1D
new TestData(getClassLoaderResource("/tiff/ccitt_tolessrows.tif"), new Dimension(6, 6)), // CCITT, metadata claiming 6 rows, stream contains only 4 new TestData(getClassLoaderResource("/tiff/ccitt_tolessrows.tif"), new Dimension(6, 6)), // CCITT, metadata claiming 6 rows, stream contains only 4
new TestData(getClassLoaderResource("/tiff/fivepages-scan-causingerrors.tif"), new Dimension(2480, 3518)), // B/W, CCITT T4 new TestData(getClassLoaderResource("/tiff/fivepages-scan-causingerrors.tif"), new Dimension(2480, 3518)), // B/W, CCITT T4
new TestData(getClassLoaderResource("/tiff/CCITTgetNextChangingElement.tif"), new Dimension(2402,195)),
// CIELab // CIELab
new TestData(getClassLoaderResource("/tiff/ColorCheckerCalculator.tif"), new Dimension(798, 546)), // CIELab 8 bit/sample new TestData(getClassLoaderResource("/tiff/ColorCheckerCalculator.tif"), new Dimension(798, 546)), // CIELab 8 bit/sample
// Gray // Gray