From 1339fc36de785efa7cbb10ae89779e722bc47a8f Mon Sep 17 00:00:00 2001 From: AI Bot Date: Thu, 30 Jul 2026 16:51:59 +0530 Subject: [PATCH] Extract textures via Canvas Base64 fallback to prevent revoked blob URL errors --- src/pages/Editor.tsx | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/pages/Editor.tsx b/src/pages/Editor.tsx index 1201503..2bc4a43 100644 --- a/src/pages/Editor.tsx +++ b/src/pages/Editor.tsx @@ -1373,8 +1373,24 @@ export default function Editor() { const extractTextureUrl = (texture: any) => { if (!texture) return undefined; - if (texture.image && typeof texture.image.src === 'string') return texture.image.src; - if (texture.source && texture.source.data && typeof texture.source.data.src === 'string') return texture.source.data.src; + const img = texture.image || (texture.source && texture.source.data); + if (!img) return undefined; + if (typeof img.src === 'string' && img.src.length > 0) return img.src; + if (typeof img.currentSrc === 'string' && img.currentSrc.length > 0) return img.currentSrc; + + // Fallback: draw ImageBitmap or HTMLImageElement to canvas to extract data URL + try { + const canvas = document.createElement('canvas'); + canvas.width = img.width || 1024; + canvas.height = img.height || 1024; + const ctx = canvas.getContext('2d'); + if (ctx) { + ctx.drawImage(img, 0, 0); + return canvas.toDataURL('image/png'); + } + } catch (e) { + console.error('Error extracting texture URL:', e); + } return undefined; };