mirror of
https://github.com/haraldk/TwelveMonkeys.git
synced 2025-08-05 04:25:29 -04:00
#433: Test case for offset issue.
This commit is contained in:
parent
4afa934251
commit
6f9c83a0a9
@ -53,8 +53,7 @@ import java.awt.color.ColorSpace;
|
||||
import java.awt.color.ICC_Profile;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.awt.image.DataBufferByte;
|
||||
import java.io.EOFException;
|
||||
import java.io.IOException;
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
import java.util.List;
|
||||
|
||||
@ -100,7 +99,6 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader
|
||||
new TestData(getClassLoaderResource("/jpeg/app-marker-missing-null-term.jpg"), new Dimension(200, 150)),
|
||||
new TestData(getClassLoaderResource("/jpeg/jfif-16bit-dqt.jpg"), new Dimension(204, 131)),
|
||||
new TestData(getClassLoaderResource("/jpeg/jfif-grayscale-thumbnail.jpg"), new Dimension(2547, 1537)), // Non-compliant JFIF with 8 bit grayscale thumbnail
|
||||
new TestData(getClassLoaderResource("/jpeg/jfif-with-preview-as-second-image.jpg"), new Dimension(3968, 2976), new Dimension(640, 480)), // JFIF, full size + preview
|
||||
new TestData(getClassLoaderResource("/jpeg-lossless/8_ls.jpg"), new Dimension(800, 535)), // Lossless gray, 8 bit
|
||||
new TestData(getClassLoaderResource("/jpeg-lossless/16_ls.jpg"), new Dimension(800, 535)), // Lossless gray, 16 bit
|
||||
new TestData(getClassLoaderResource("/jpeg-lossless/24_ls.jpg"), new Dimension(800, 535)), // Lossless RGB, 8 bit per component (24 bit)
|
||||
@ -1807,4 +1805,36 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader
|
||||
reader.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStreamOffset() throws IOException {
|
||||
// Tests a known issue:
|
||||
// If the JPEGImageReader reads an embedded JPEG stream, we can't assume SOI starts at pos 0,
|
||||
// instead, we'll just assume SOI at the current stream position.
|
||||
|
||||
JPEGImageReader reader = createReader();
|
||||
|
||||
try {
|
||||
// Prepend the data with random padding
|
||||
InputStream input = new SequenceInputStream(new ByteArrayInputStream(new byte[42]),
|
||||
getClass().getResourceAsStream("/jpeg/gray-sample.jpg"));
|
||||
|
||||
ImageInputStream stream = ImageIO.createImageInputStream(input);
|
||||
// Skip padding
|
||||
stream.seek(42);
|
||||
|
||||
reader.setInput(stream);
|
||||
|
||||
assertEquals(386, reader.getWidth(0));
|
||||
assertEquals(396, reader.getHeight(0));
|
||||
|
||||
BufferedImage image = reader.read(0, null);
|
||||
|
||||
assertNotNull(image);
|
||||
assertEquals(386, image.getWidth());
|
||||
assertEquals(396, image.getHeight());
|
||||
} finally {
|
||||
reader.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user