2度保存できない問題を解消

This commit is contained in:
ry.yamafuji 2025-06-10 02:59:26 +09:00
parent 4a7160e97e
commit 5e4d7943ec

View File

@ -89,6 +89,9 @@ export function getWebviewContent(imageSrc: string): string {
let markColor = colorPicker.value;
let markLineWidth = parseInt(lineWidthSelect.value, 10);
// VS Code API を一度だけ取得
const vscode = window.acquireVsCodeApi ? window.acquireVsCodeApi() : null;
// UIイベント
moveBtn.onclick = () => setMode('move');
selectBtn.onclick = () => setMode('select');
@ -118,6 +121,7 @@ export function getWebviewContent(imageSrc: string): string {
draw();
};
saveBtn.onclick = () => {
console.log('Save button onclick fired!');
// 元画像サイズのオフスクリーンcanvasで保存
const offCanvas = document.createElement('canvas');
offCanvas.width = img.width;
@ -130,9 +134,13 @@ export function getWebviewContent(imageSrc: string): string {
drawEllipseRaw(offCtx, mark.x1, mark.y1, mark.x2, mark.y2, mark.color, mark.lineWidth);
}
const dataUrl = offCanvas.toDataURL('image/png');
if (window.acquireVsCodeApi) {
const vscode = window.acquireVsCodeApi();
console.log('Data URL created, checking VSCode API...');
if (vscode) {
console.log('VSCode API available, sending message...');
vscode.postMessage({ type: 'save-image', dataUrl });
console.log('Message sent to extension');
} else {
console.log('VSCode API not available!');
}
};