Javascript 更改画布背景

Javascript 更改画布背景,javascript,css,html,canvas,Javascript,Css,Html,Canvas,我有HTML5画布绘图应用程序,当用户单击按钮时,我需要更改它的背景色 画布上的背景色在用户端起作用,但用户可以将图像保存到服务器,我正在使用canvas.toDataURL(“image/png”)导出画布数据。问题是,画布的背景色不包括在内,它只发送用户绘制的数据 我想在整个画布上画一个大的重角,但这会覆盖所有已经画好的画。有什么想法吗?您没有显示任何代码,但是:您需要使用它的上下文绘制背景。在提取图像时,使用CSS设置背景将不会包括它,因为您已经发现了这一点 Canvas简单地分为两部分:

我有HTML5画布绘图应用程序,当用户单击按钮时,我需要更改它的背景色

画布上的背景色在用户端起作用,但用户可以将图像保存到服务器,我正在使用canvas.toDataURL(“image/png”)导出画布数据。问题是,画布的背景色不包括在内,它只发送用户绘制的数据


我想在整个画布上画一个大的重角,但这会覆盖所有已经画好的画。有什么想法吗?

您没有显示任何代码,但是:您需要使用它的上下文绘制背景。在提取图像时,使用CSS设置背景将不会包括它,因为您已经发现了这一点

Canvas简单地分为两部分:Canvas元素本身和它的位图。使用CSS会影响元素,但不会影响位图。因此,通常需要通过位图的上下文或使用像素缓冲区来更新位图,使其成为位图的一部分

请执行以下操作:

  • 初始化时,使用例如
    fillRect()
  • 在顶部绘制剩余的图形
  • 使用
    toDataURL()提取

如果您想在画布上绘制内容后添加背景,可以添加另一个具有相同大小且带有“display:none”的画布,然后在发送图像之前,只需使用CSS中主画布元素的背景色填充临时画布,然后将主画布绘制到临时画布上。 最后,从临时画布(而不是具有透明背景的主画布的位图)向服务器发送合成