Use full CanvasKit build for JPEG/WEBP encoding support
The default canvaskit.wasm doesn't include JPEG/WEBP encoders (encodeToBytes returns null). The full build is only ~1MB larger.
This commit is contained in:
parent
7a5a77c098
commit
7d4b821e77
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in a new issue