diff --git a/src/hooks/floorPlan/useImgLoader.js b/src/hooks/floorPlan/useImgLoader.js index dc272441..47eea944 100644 --- a/src/hooks/floorPlan/useImgLoader.js +++ b/src/hooks/floorPlan/useImgLoader.js @@ -84,15 +84,25 @@ export function useImgLoader() { const originalBg = canvas.backgroundColor canvas.backgroundColor = '#ffffff' - // CORS 대응: 이미지 오브젝트에 crossOrigin 설정 - canvas.getObjects('image').forEach((obj) => { - if (obj.getSrc) { - const img = new Image() - img.crossOrigin = 'anonymous' - img.src = obj.getSrc() - obj.setElement(img) - } - }) + // CORS 대응: 이미지 오브젝트에 crossOrigin 설정 (로드 완료 대기) + const imageObjects = canvas.getObjects('image').filter((obj) => obj.getSrc) + await Promise.all( + imageObjects.map( + (obj) => + new Promise((resolve) => { + const img = new Image() + img.crossOrigin = 'anonymous' + img.onload = () => { + obj.setElement(img) + resolve() + } + img.onerror = () => { + resolve() + } + img.src = obj.getSrc() + }), + ), + ) canvas.renderAll()