Indicate support for lossless to ImageIO

This commit is contained in:
Simon Kammermeier 2022-09-06 00:17:01 +02:00
parent 7c4487be04
commit cda34b704b

View File

@ -75,10 +75,8 @@ public final class WebPImageReaderSpi extends ImageReaderSpiBase {
int chunk = stream.readInt(); int chunk = stream.readInt();
switch (chunk) { switch (chunk) {
// TODO. Support lossless case WebP.CHUNK_VP8L:
// case WebP.CHUNK_VP8L:
case WebP.CHUNK_VP8X: case WebP.CHUNK_VP8X:
return containsSupportedChunk(stream, chunk);
case WebP.CHUNK_VP8_: case WebP.CHUNK_VP8_:
return true; return true;
default: default:
@ -91,30 +89,6 @@ public final class WebPImageReaderSpi extends ImageReaderSpiBase {
} }
} }
private static boolean containsSupportedChunk(ImageInputStream stream, int chunk) throws IOException {
// Temporary: Seek for VP8_, either first or second (after ICCP), or inside ANMF...
try {
while (chunk != WebP.CHUNK_VP8L && chunk != WebP.CHUNK_ALPH) {
long length = stream.readUnsignedInt();
stream.seek(stream.getStreamPosition() + length);
chunk = stream.readInt();
// Look inside ANMF chunks...
if (chunk == WebP.CHUNK_ANMF) {
stream.seek(stream.getStreamPosition() + 4 + 16);
chunk = stream.readInt();
}
if (chunk == WebP.CHUNK_VP8_) {
return true;
}
}
}
catch (EOFException ignore) {}
return false;
}
@Override @Override
public ImageReader createReaderInstance(final Object extension) { public ImageReader createReaderInstance(final Object extension) {
return new WebPImageReader(this); return new WebPImageReader(this);