const canvas = document.createElement('canvas'); const ctx = canvas.getContext('2d'); if (ctx === null) { throw new Error('Unable to get 2D context.'); } // 画像Aを読み込む const imgA = new Image(); imgA.src = 'http://example1.com/imageA.jpg'; // 例:ユーザーに見せたい画像。これ自体は難読化されている imgA.onload = () => { ctx.drawImage(imgA, 0, 0); // 画像Bを読み込む const imgB = new Image(); imgB.src = 'http://example2.com/imageB.jpg'; // 例:透明な画像 imgB.onload = () => { ctx.drawImage(imgB, 50, 50); // この時点でcanvasは「汚染」された try { const dataUrl = canvas.toDataURL(); // エラー! } catch (err) { console.error(err); } }; };