mirror of
https://github.com/haraldk/TwelveMonkeys.git
synced 2025-08-04 12:05:29 -04:00
CCITT EncodedByteAlign now default for RLE, always overridable.
+ test case provided by @Schmidor
This commit is contained in:
parent
d564a6b338
commit
a5471ef4c4
@ -106,7 +106,7 @@ final class CCITTFaxDecoderStream extends FilterInputStream {
|
|||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case TIFFBaseline.COMPRESSION_CCITT_MODIFIED_HUFFMAN_RLE:
|
case TIFFBaseline.COMPRESSION_CCITT_MODIFIED_HUFFMAN_RLE:
|
||||||
optionByteAligned = true;
|
optionByteAligned = byteAligned;
|
||||||
optionG32D = false;
|
optionG32D = false;
|
||||||
optionG3Fill = false;
|
optionG3Fill = false;
|
||||||
optionUncompressed = false;
|
optionUncompressed = false;
|
||||||
|
@ -110,12 +110,18 @@ public class CCITTFaxDecoderStreamTest {
|
|||||||
(byte) 0xc0 // 11 (000000 padding)
|
(byte) 0xc0 // 11 (000000 padding)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 3W|1B|2W| 3W|1B|2W| 3W|1B|2W| 2W|2B|2W
|
||||||
|
// 1000|010|0111| 1000|010|0111| 1000|010|0111| 0111|11|0111
|
||||||
|
static final byte[] DATA_RLE_UNALIGNED = {
|
||||||
|
(byte)0x84, (byte)0xF0, (byte)0x9E,0x13, (byte)0xBE,(byte) 0xE0
|
||||||
|
};
|
||||||
|
|
||||||
// Image should be (6 x 4):
|
// Image should be (6 x 4):
|
||||||
// 1 1 1 0 1 1 x x
|
// 1 1 1 0 1 1 x x
|
||||||
// 1 1 1 0 1 1 x x
|
// 1 1 1 0 1 1 x x
|
||||||
// 1 1 1 0 1 1 x x
|
// 1 1 1 0 1 1 x x
|
||||||
// 1 1 0 0 1 1 x x
|
// 1 1 0 0 1 1 x x
|
||||||
final BufferedImage image = new BufferedImage(6, 4, BufferedImage.TYPE_BYTE_BINARY);;
|
final BufferedImage image = new BufferedImage(6, 4, BufferedImage.TYPE_BYTE_BINARY);
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void init() {
|
public void init() {
|
||||||
@ -280,6 +286,17 @@ public class CCITTFaxDecoderStreamTest {
|
|||||||
assertArrayEquals(imageData, bytes);
|
assertArrayEquals(imageData, bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDecodeType2NotByteAligned() throws IOException {
|
||||||
|
CCITTFaxDecoderStream stream = new CCITTFaxDecoderStream(new ByteArrayInputStream(DATA_RLE_UNALIGNED), 6,
|
||||||
|
TIFFBaseline.COMPRESSION_CCITT_MODIFIED_HUFFMAN_RLE, 1, 0L, false);
|
||||||
|
|
||||||
|
byte[] imageData = ((DataBufferByte) image.getData().getDataBuffer()).getData();
|
||||||
|
byte[] bytes = new byte[imageData.length];
|
||||||
|
new DataInputStream(stream).readFully(bytes);
|
||||||
|
assertArrayEquals(imageData, bytes);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testG3AOE() throws IOException {
|
public void testG3AOE() throws IOException {
|
||||||
InputStream inputStream = getClass().getResourceAsStream("/tiff/ccitt/g3aoe.tif");
|
InputStream inputStream = getClass().getResourceAsStream("/tiff/ccitt/g3aoe.tif");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user