From 3c08cae0935e4c2aef65daf9b0db9209707a6e26 Mon Sep 17 00:00:00 2001 From: Harald Kuhr Date: Mon, 3 Nov 2014 21:10:36 +0100 Subject: [PATCH] TMI-77: Fixed bug in predictor for tiled TIFFs. --- .../twelvemonkeys/imageio/metadata/exif/EXIFEntry.java | 8 ++++++++ .../twelvemonkeys/imageio/plugins/tiff/TIFFExtension.java | 7 +++++++ .../imageio/plugins/tiff/TIFFImageReader.java | 4 ++-- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/imageio/imageio-metadata/src/main/java/com/twelvemonkeys/imageio/metadata/exif/EXIFEntry.java b/imageio/imageio-metadata/src/main/java/com/twelvemonkeys/imageio/metadata/exif/EXIFEntry.java index 576d3764..f888bf82 100644 --- a/imageio/imageio-metadata/src/main/java/com/twelvemonkeys/imageio/metadata/exif/EXIFEntry.java +++ b/imageio/imageio-metadata/src/main/java/com/twelvemonkeys/imageio/metadata/exif/EXIFEntry.java @@ -122,6 +122,14 @@ final class EXIFEntry extends AbstractEntry { return "HostComputer"; case TIFF.TAG_PREDICTOR: return "Predictor"; + case TIFF.TAG_TILE_WIDTH: + return "TileWidth"; + case TIFF.TAG_TILE_HEIGTH: + return "TileHeight"; + case TIFF.TAG_TILE_OFFSETS: + return "TileOffsets"; + case TIFF.TAG_TILE_BYTE_COUNTS: + return "TileByteCounts"; case TIFF.TAG_COPYRIGHT: return "Copyright"; case TIFF.TAG_YCBCR_SUB_SAMPLING: diff --git a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFExtension.java b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFExtension.java index c933d324..de714606 100644 --- a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFExtension.java +++ b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFExtension.java @@ -76,4 +76,11 @@ interface TIFFExtension { /** For use with Photometric: 5 (Separated), when image data is in CMYK color space. */ int INKSET_CMYK = 1; + + /** + * For use with Photometric: 5 (Separated), when image data is in a color space other than CMYK. + * See {@link com.twelvemonkeys.imageio.metadata.exif.TIFF#TAG_INK_NAMES InkNames} field for a + * description of the inks to be used. + */ + int INKSET_NOT_CMYK = 2; } diff --git a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReader.java b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReader.java index d6eb9247..a2715793 100755 --- a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReader.java +++ b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReader.java @@ -665,8 +665,8 @@ public class TIFFImageReader extends ImageReaderBase { ? IIOUtil.createStreamAdapter(imageInput, stripTileByteCounts[i]) : IIOUtil.createStreamAdapter(imageInput); - adapter = createDecompressorStream(compression, width, adapter); - adapter = createUnpredictorStream(predictor, width, numBands, getBitsPerSample(), adapter, imageInput.getByteOrder()); + adapter = createDecompressorStream(compression, stripTileWidth, adapter); + adapter = createUnpredictorStream(predictor, stripTileWidth, numBands, getBitsPerSample(), adapter, imageInput.getByteOrder()); if (interpretation == TIFFExtension.PHOTOMETRIC_YCBCR && rowRaster.getTransferType() == DataBuffer.TYPE_BYTE) { adapter = new YCbCrUpsamplerStream(adapter, yCbCrSubsampling, yCbCrPos, colsInTile, yCbCrCoefficients);