From c83171cdbf1405991c2683be2728c3e643644d51 Mon Sep 17 00:00:00 2001 From: Ivan Khaldeev Date: Fri, 29 Jun 2018 10:02:05 +0400 Subject: [PATCH] Fix getAlphaRaster for ExtraSamplesColorModel --- .../plugins/tiff/ExtraSamplesColorModel.java | 16 ++++++++++++++ .../plugins/tiff/TIFFImageReaderTest.java | 20 ++++++++++++++++++ .../test/resources/tiff/extra-channels.tif | Bin 0 -> 94772 bytes 3 files changed, 36 insertions(+) create mode 100755 imageio/imageio-tiff/src/test/resources/tiff/extra-channels.tif diff --git a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/ExtraSamplesColorModel.java b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/ExtraSamplesColorModel.java index 10082da7..552ddf91 100644 --- a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/ExtraSamplesColorModel.java +++ b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/ExtraSamplesColorModel.java @@ -7,6 +7,7 @@ import java.awt.color.ColorSpace; import java.awt.image.ComponentColorModel; import java.awt.image.ComponentSampleModel; import java.awt.image.SampleModel; +import java.awt.image.WritableRaster; /** * ExtraSamplesColorModel. @@ -41,4 +42,19 @@ final class ExtraSamplesColorModel extends ComponentColorModel { // Must have the same number of components return numComponents == sm.getNumBands() && transferType == sm.getTransferType(); } + + @Override + public WritableRaster getAlphaRaster(WritableRaster raster) { + if (hasAlpha() == false) { + return null; + } + + int x = raster.getMinX(); + int y = raster.getMinY(); + int[] band = new int[1]; + band[0] = super.getNumComponents() - 1; + return raster.createWritableChild(x, y, raster.getWidth(), + raster.getHeight(), x, y, + band); + } } diff --git a/imageio/imageio-tiff/src/test/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderTest.java b/imageio/imageio-tiff/src/test/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderTest.java index 53ad946b..53f101c8 100644 --- a/imageio/imageio-tiff/src/test/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderTest.java +++ b/imageio/imageio-tiff/src/test/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderTest.java @@ -40,6 +40,7 @@ import javax.imageio.stream.ImageInputStream; import java.awt.*; import java.awt.image.BufferedImage; import java.awt.image.Raster; +import java.awt.image.WritableRaster; import java.io.IOException; import java.nio.ByteOrder; import java.util.Arrays; @@ -586,6 +587,25 @@ public class TIFFImageReaderTest extends ImageReaderAbstractTest>> 24); + + int[] alpha = new int[1]; + WritableRaster alphaRaster = image.getAlphaRaster(); + assertEquals(0x00, alphaRaster.getPixel(0, 0, alpha)[0]); + assertEquals(0xf5, alphaRaster.getPixel(50, 50, alpha)[0]); + } + } + @Test public void testReadWithSubsampleParamPixelsJPEG() throws IOException { // Tiled "new style" JPEG diff --git a/imageio/imageio-tiff/src/test/resources/tiff/extra-channels.tif b/imageio/imageio-tiff/src/test/resources/tiff/extra-channels.tif new file mode 100755 index 0000000000000000000000000000000000000000..d642e46113a31d415382ff5f74989d4af0a63233 GIT binary patch literal 94772 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 J;f+sA{uhAXyG{TA literal 0 HcmV?d00001