get sharp image generation working

This commit is contained in:
acalcutt 2024-12-21 19:53:34 -05:00 committed by Miko
parent f7883a26ad
commit d4c2ce1e4d

View file

@ -61,15 +61,31 @@ export class LocalDemManager {
*/ */
async getImageData(blob, abortController) { async getImageData(blob, abortController) {
try { try {
const buffer = await blob.arrayBuffer();
const png = PNG.sync.read(Buffer.from(buffer));
const parsed = mlcontour.decodeParsedImage(
png.width,
png.height,
this.encoding,
png.data,
);
if (Boolean(abortController?.signal?.aborted)) return null; if (Boolean(abortController?.signal?.aborted)) return null;
const buffer = await blob.arrayBuffer();
const image = sharp(Buffer.from(buffer));
const metadata = await image.metadata();
if (Boolean(abortController?.signal?.aborted)) return null;
const { data, info } = await image
.ensureAlpha() // Ensure RGBA output
.raw()
.toBuffer({ resolveWithObject: true });
if (Boolean(abortController?.signal?.aborted)) return null;
const parsed = mlcontour.decodeParsedImage(
info.width,
info.height,
this.encoding,
data,
);
if (Boolean(abortController?.signal?.aborted)) return null;
return parsed; return parsed;
} catch (error) { } catch (error) {
console.error('Error processing image:', error); console.error('Error processing image:', error);