8 lines
626 B
TypeScript
8 lines
626 B
TypeScript
const worker=globalThis as unknown as{onmessage:((event:MessageEvent)=>void)|null;postMessage(value:unknown):void};
|
|
worker.onmessage=async event=>{
|
|
const {version,id,bytes}=event.data??{};if(version!==1||!Number.isSafeInteger(id)||!(bytes instanceof Blob))return;
|
|
try{const bitmap=await createImageBitmap(bytes,{imageOrientation:'from-image'});let width:number,height:number;try{width=bitmap.width;height=bitmap.height;}finally{bitmap.close();}worker.postMessage({version:1,id,byteLength:bytes.size,width,height});}
|
|
catch{worker.postMessage({version:1,id,byteLength:bytes.size,error:'image_decode_failed'});}
|
|
};
|
|
export {};
|