Canvas 繪製與下載

 好的,我將會產生一個 HTML 頁面,其中包含一個 Canvas 元素。我會在該 Canvas 上繪製內容,然後提供一個下載按鈕,點擊後將會下載 Canvas 原始尺寸的 PNG 圖片。如果 Canvas 內容太大而無法直接顯示,你可以調整 CSS 樣式來縮小 Canvas 的顯示尺寸,但不影響下載時的原始尺寸。

<html>
<head>
<title>Canvas 繪製與下載</title>
<style>
#myCanvas {
/* 可以調整寬高來縮小顯示尺寸,但不影響實際繪製尺寸 */
border: 1px solid black;
}
</style>
</head>
<body>

<canvas id="myCanvas" width="800" height="600"></canvas>
<button id="downloadBtn">下載圖片</button>

<script>
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
const downloadBtn = document.getElementById('downloadBtn');

// 在 Canvas 上繪製內容
ctx.fillStyle = 'lightblue';
ctx.fillRect(50, 50, 700, 500);
ctx.strokeStyle = 'red';
ctx.lineWidth = 5;
ctx.strokeRect(100, 100, 600, 400);
ctx.font = '48px serif';
ctx.fillStyle = 'green';
ctx.fillText('Hello Canvas!', 150, 300);

downloadBtn.addEventListener('click', function() {
const dataURL = canvas.toDataURL('image/png');
const a = document.createElement('a');
a.href = dataURL;
a.download = 'canvas_image.png';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
});
</script>
</body>
</html>

留言

這個網誌中的熱門文章

Offscreen Canvas

外部網頁新增 Google 日曆行程(URL模板)

計算 Canvas 文字最大字體