diff --git a/src/engine/render-image.ts b/src/engine/render-image.ts index 756305147..bf7bad195 100644 --- a/src/engine/render-image.ts +++ b/src/engine/render-image.ts @@ -87,8 +87,12 @@ export function renderNodesToImage( surface.flush() const image = surface.makeImageSnapshot() const quality = options.quality ?? defaultQuality(options.format) - const encoded = image.encodeToBytes(ckImageFormat(ck, options.format), quality) + const fmt = ckImageFormat(ck, options.format) + const encoded = image.encodeToBytes(fmt, quality) image.delete() + if (!encoded) { + console.error(`encodeToBytes returned null for format=${options.format} quality=${quality}`) + } return encoded ? new Uint8Array(encoded) : null } finally { surface.delete() diff --git a/src/stores/editor.ts b/src/stores/editor.ts index e608a792e..76947a513 100644 --- a/src/stores/editor.ts +++ b/src/stores/editor.ts @@ -620,7 +620,10 @@ export function createEditorStore() { async function exportSelection(scale: number, format: ExportFormat) { const ids = [...state.selectedIds] const data = renderExportImage(ids, scale, format) - if (!data) return + if (!data) { + console.error(`Export failed: renderExportImage returned null for format=${format} scale=${scale}`) + return + } const node = ids.length === 1 ? graph.getNode(ids[0]) : undefined const baseName = node?.name ?? 'Export' diff --git a/vite.config.ts b/vite.config.ts index c82a9923c..07ce3c8b1 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -21,7 +21,7 @@ export default defineConfig(async () => ({ { name: 'copy-canvaskit-wasm', buildStart() { - const src = 'node_modules/canvaskit-wasm/bin/canvaskit.wasm' + const src = 'node_modules/canvaskit-wasm/bin/full/canvaskit.wasm' const dest = 'public/canvaskit.wasm' if (existsSync(src) && !existsSync(dest)) { copyFileSync(src, dest)