Merge pull request #39 from escenic/upstream

JPEGImageReader throws "IllegalStateException: sourceRegion.height <= subsamplingYOffset!"
This commit is contained in:
Harald Kuhr 2014-03-02 22:15:06 +01:00
commit d607450ae4
7 changed files with 54 additions and 0 deletions

View File

@ -445,6 +445,10 @@ public class JPEGImageReader extends ImageReaderBase {
for (int y = srcRegion.y; y < srcMaxY; y += step) {
int scan = Math.min(step, srcMaxY - y);
if(scan <= param.getSubsamplingYOffset()) {
param.setSourceSubsampling(param.getSourceXSubsampling(),param.getSourceYSubsampling(),param.getSubsamplingXOffset(),0);
}
// Let the progress delegator handle progress, using corrected range
progressDelegator.updateProgressRange(100f * (y + scan) / srcRegion.height);

View File

@ -988,4 +988,54 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTestCase<JPEGImageRe
return sortedNodes;
}
@Test
public void testReadImage1028() throws IOException {
JPEGImageReader reader = createReader();
reader.setInput(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/read-error1028.jpg")));
ImageReadParam param = reader.getDefaultReadParam();
param.setSourceSubsampling(3, 3, 1, 1);
BufferedImage image = reader.read(0, param);
assertNotNull(image);
}
@Test
public void testReadImage1027() throws IOException {
JPEGImageReader reader = createReader();
reader.setInput(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/read-error1027.jpg")));
ImageReadParam param = reader.getDefaultReadParam();
param.setSourceSubsampling(3, 3, 2, 2);
BufferedImage image = reader.read(0, param);
assertNotNull(image);
}
@Test
public void testReadImage1026() throws IOException {
JPEGImageReader reader = createReader();
reader.setInput(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/read-error1026.jpg")));
ImageReadParam param = reader.getDefaultReadParam();
param.setSourceSubsampling(3, 3, 1, 1);
BufferedImage image = reader.read(0, param);
assertNotNull(image);
}
@Test
public void testReadImage1025() throws IOException {
JPEGImageReader reader = createReader();
reader.setInput(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/read-error1025.jpg")));
ImageReadParam param = reader.getDefaultReadParam();
param.setSourceSubsampling(3, 3, 1, 1);
BufferedImage image = reader.read(0, param);
assertNotNull(image);
}
@Test
public void testReadImage1024() throws IOException {
JPEGImageReader reader = createReader();
reader.setInput(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/read-error1024.jpg")));
ImageReadParam param = reader.getDefaultReadParam();
param.setSourceSubsampling(3, 3, 1, 1);
BufferedImage image = reader.read(0, param);
assertNotNull(image);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB