canvas base64 背景变黑色

当打电话的时候或者在后台停留时间过长,回来发现canvas的背景会变黑色,drawImage 这个方法插入base64的图片 图片是png的

阅读 10.4k
2 个回答

将透明的pixel设成白色。

新手上路,请多包涵

你要知道Canvas白色部分并不是实体的#FFF,而是透明背景,所以说只要是Canvas画布通过toDataURL转换成base64时候,背景都会被填充成黑色。
简单的解决这个问题:
在取得Canvas元素或者绘制对象之后(更或者在你准备绘制Canvas之前),给你的Canvas加一层白色矩形框(Canvas是什么样式,你就加什么样式的背景)

具体实现如下:

cxt.fillStyle = "#fff";   
cxt.fillRect(0, 0, canvas.width, canvas.height);

加完白色底色覆盖掉透明背景之后,就不会变成黑色了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题