From 822bea80b621794d7f0cfc001b44ba6214832888 Mon Sep 17 00:00:00 2001 From: Rune Bremnes Date: Mon, 24 Feb 2014 13:27:16 +0100 Subject: [PATCH] Fix reading jpeg images where last scanline is higher than the y source subsampling offset. --- .../twelvemonkeys/imageio/plugins/jpeg/JPEGImageReader.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReader.java b/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReader.java index e8be131d..0a4b2879 100644 --- a/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReader.java +++ b/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReader.java @@ -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);