From 5d623cce9fda36f82448ac97a9c5fa00238f0eaf Mon Sep 17 00:00:00 2001 From: Harald Kuhr Date: Thu, 20 Oct 2022 16:00:12 +0200 Subject: [PATCH] #707 WebP: Fix Alpha support (cherry picked from commit 8f44cfc43c9b81e41b8ed34bbc957ac05793c419) --- .../imageio/plugins/webp/WebPImageReader.java | 8 ++-- .../plugins/webp/WebPImageReaderTest.java | 37 +++++++++++++++---- 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/imageio/imageio-webp/src/main/java/com/twelvemonkeys/imageio/plugins/webp/WebPImageReader.java b/imageio/imageio-webp/src/main/java/com/twelvemonkeys/imageio/plugins/webp/WebPImageReader.java index fb4ab4c2..ad121a99 100644 --- a/imageio/imageio-webp/src/main/java/com/twelvemonkeys/imageio/plugins/webp/WebPImageReader.java +++ b/imageio/imageio-webp/src/main/java/com/twelvemonkeys/imageio/plugins/webp/WebPImageReader.java @@ -511,16 +511,16 @@ final class WebPImageReader extends ImageReaderBase { } private void readAlpha(BufferedImage destination, ImageReadParam param, final int width, final int height) throws IOException { + int compression = (int) lsbBitReader.readBits(2); + int filtering = (int) lsbBitReader.readBits(2); int reserved = (int) lsbBitReader.readBits(2); + int preProcessing = (int) lsbBitReader.readBits(2); + if (reserved != 0) { // Spec says SHOULD be 0 processWarningOccurred(String.format("Unexpected 'ALPH' chunk reserved value, expected 0: %d", reserved)); } - int preProcessing = (int) lsbBitReader.readBits(2); - int filtering = (int) lsbBitReader.readBits(2); - int compression = (int) lsbBitReader.readBits(2); - if (DEBUG) { System.out.println("preProcessing: " + preProcessing); System.out.println("filtering: " + filtering); diff --git a/imageio/imageio-webp/src/test/java/com/twelvemonkeys/imageio/plugins/webp/WebPImageReaderTest.java b/imageio/imageio-webp/src/test/java/com/twelvemonkeys/imageio/plugins/webp/WebPImageReaderTest.java index 244b89a6..66959421 100644 --- a/imageio/imageio-webp/src/test/java/com/twelvemonkeys/imageio/plugins/webp/WebPImageReaderTest.java +++ b/imageio/imageio-webp/src/test/java/com/twelvemonkeys/imageio/plugins/webp/WebPImageReaderTest.java @@ -1,11 +1,8 @@ package com.twelvemonkeys.imageio.plugins.webp; -import static java.util.Arrays.asList; +import com.twelvemonkeys.imageio.util.ImageReaderAbstractTest; -import java.awt.*; -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.util.List; +import org.junit.Test; import javax.imageio.ImageIO; import javax.imageio.ImageReadParam; @@ -13,10 +10,13 @@ import javax.imageio.ImageTypeSpecifier; import javax.imageio.spi.ImageReaderSpi; import javax.imageio.stream.ImageInputStream; import javax.imageio.stream.MemoryCacheImageInputStream; +import java.awt.*; +import java.awt.image.*; +import java.io.IOException; +import java.util.List; -import org.junit.Test; - -import com.twelvemonkeys.imageio.util.ImageReaderAbstractTest; +import static java.util.Arrays.asList; +import static org.junit.Assert.assertEquals; /** * WebPImageReaderTest @@ -141,4 +141,25 @@ public class WebPImageReaderTest extends ImageReaderAbstractTest