【发布时间】:2024-04-17 22:05:02
【问题描述】:
我想做什么
我想知道如何使背景颜色变白。
我用画布构建了一个绘图应用程序。您可以通过单击“下载”按钮下载您绘制的画布图像。但是它的背景颜色是黑色的(技术上是透明的)。
如何将其更改为白色?
我尝试了什么
我将以下代码添加到我的代码中,但效果不佳。我什么都画不出来。
ctx.fillStyle = "#fff";
ctx.fillRect(0, 0, canvas.width, canvas.height);
这是我的代码
const canvas = document.querySelector('#draw');
const ctx = canvas.getContext('2d');
ctx.strokeStyle = '#BADA55';
...
function draw(e) {
if (!isDrawing) return;
console.log(e);
ctx.strokeStyle = `hsl(${hue}, 100%, 50%)`;
ctx.beginPath();
ctx.moveTo(lastX, lastY);
ctx.lineTo(e.offsetX, e.offsetY);
ctx.stroke();
[lastX, lastY] = [e.offsetX, e.offsetY];
...
}
canvas.addEventListener('mousedown', (e) => {
isDrawing = true;
[lastX, lastY] = [e.offsetX, e.offsetY];
});
canvas.addEventListener('mousemove', draw);
...
downloadBtn.addEventListener('click', downloadImage);
function downloadImage() {
if (canvas.msToBlob) {
const blob = canvas.msToBlob();
window.navigator.msSaveBlob(blob, filename);
} else {
downloadLink.href = canvas.toDataURL('image/png');
downloadLink.download = filename;
downloadLink.click();
}
}
我想把下载图片的背景色设为白色。
【问题讨论】:
-
您尝试了
ctx.fillRect(),但它不在您的代码中。你把它放在哪里了? -
我删除了 ctx.fillRect()。稍后我将发布包含更多详细信息的相同问题,因为我仍然没有权限编辑我的问题。
-
你是什么意思你没有edit你的问题的特权。这不是特权,在 1 rep 你已经可以了。以此为由关闭另一个。
标签: javascript canvas