this.context.drawImage(myimage, 0, 0);
在网上,关于如何将图像放在画布上的内容已经很详细了。但是,当它被放置后,我该如何将其移除呢?
this.context.drawImage(myimage, 0, 0);
在网上,关于如何将图像放在画布上的内容已经很详细了。但是,当它被放置后,我该如何将其移除呢?
Canvas是一种即时绘制表面。这意味着您在其上执行一个命令(drawImage或fillRect),它会执行该命令,而不关心已经完成的内容。没有撤销某些操作的功能。
您很难找到它,因为Canvas没有"删除"这样的功能。它只知道从“某个地方”获取到了某些颜色的像素。但它不知道来自哪里。
简化一下,通常有两种方法:
您会发现,在第1种方法中,如果要选择性地删除或重新定位其中的某些元素,则可能需要开始跟踪您在Canvas上绘制的内容。使对象持久化,或者说将Canvas从即时绘图表面转变为保留绘图表面,是许多Canvas库所做的事情。如果您想自己实现它,我写了一些教程来帮助人们入门。
如果您想查看库,请看一下easel.js。它相当容易学习。
选项1:
绘制与背景相同颜色的矩形。
选项2(适用于复杂背景,但速度较慢):
从canvas中获取像素数据,然后重新绘制该像素数据以去除图像。
所以,我想出了一种快速简便的方法来清空我的画布。我只需要把<canvas>
标签放在带有一个ID的<p>
标签之间,然后每次需要清空画布时,只需重新渲染我的<p>
标签,通过改变innerHTML
,它非常有效。