Add WebP2 support

This commit is contained in:
Surma
2020-10-30 16:56:52 +00:00
committed by Ingvar Stepanyan
parent e60ffddfd7
commit 18b2bd1135
24 changed files with 726 additions and 2 deletions

View File

@@ -1,12 +1,16 @@
import { builtinDecode, sniffMimeType, canDecodeImageType } from '../lib/util';
import Processor from './processor';
export async function decodeImage(blob: Blob, processor: Processor): Promise<ImageData> {
export async function decodeImage(
blob: Blob,
processor: Processor,
): Promise<ImageData> {
const mimeType = await sniffMimeType(blob);
const canDecode = await canDecodeImageType(mimeType);
try {
if (!canDecode) {
if (mimeType === 'image/webp2') return await processor.wp2Decode(blob);
if (mimeType === 'image/avif') return await processor.avifDecode(blob);
if (mimeType === 'image/webp') return await processor.webpDecode(blob);
if (mimeType === 'image/jpegxl') return await processor.jxlDecode(blob);
@@ -14,6 +18,6 @@ export async function decodeImage(blob: Blob, processor: Processor): Promise<Ima
}
return await builtinDecode(blob);
} catch (err) {
throw Error("Couldn't decode image");
throw Error('Couldnt decode image');
}
}