@yireen/squoosh-browser
Version:
An image compression tool run in browser while @squoosh/lib can not.
24 lines (23 loc) • 722 B
JavaScript
import { drawableToImageData } from '../canvas';
const hasImageDecoder = typeof ImageDecoder !== 'undefined';
export async function isTypeSupported(mimeType) {
if (!hasImageDecoder)
return false;
try {
return await ImageDecoder.isTypeSupported(mimeType);
}
catch (err) {
return false;
}
}
export async function decode(blob, mimeType) {
if (!hasImageDecoder) {
throw Error(`This browser does not support ImageDecoder. This function should not have been called.`);
}
const decoder = new ImageDecoder({
type: mimeType,
data: new Response(blob).body,
});
const { image } = await decoder.decode();
return drawableToImageData(image);
}