在画布上绘制生成的背景时的一些建议
Some advice when drawing a generated background into a canvas
我有一个项目,我正在使用HTML5画布。我想尝试在基于瓷砖的网格中生成一个随机区域,每个瓷砖都使用context.drawImage()
在象限中绘制到屏幕上,你可以想象这是一个40x22网格的相当沉重的负载。为了解决这个问题,我抓住画布并使用canvas.toDataURL()
将其保存为图像,并在每个渲染循环中绘制该图像。
当我想对tile结构进行活动更改时,问题出现了,在本例中,在画布上绘制以更改tile。每次我进行更改时,背景将再次保存为canvas.toDataURL()
图像,因此更改将保存到背景中。但这在不断生成数据url时导致了巨大的性能下降(16fps)。
我的问题是:有没有更好的方法来捕获画布的内容来重用,而不会导致这样的帧丢失?另外,我不太了解canvas.toDataURL()
是如何工作的,文件保存到服务器上了吗?使用此功能是否有带宽问题?
感谢@markE向我介绍了创建内存画布的概念。因为我是通过试错来学习的,所以我错过了这个方法是可以理解的。现在我的应用程序没有掉帧,响应速度更快了。
谢谢!
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 可以在这里为背景图像设置滤镜吗
- 有没有一个javascript图形绘制库可以进行气球树布局
- 如何使用jquery更改html中的背景颜色
- 使用 js 将背景图像设置为 HTML
- 使用带括号的图像URL作为jQuery的背景
- 绘制DOM元素:鼠标事件会被背景元素混淆
- 在画布背景图像上插入绘制的形状
- 画布绘制按分区背景精灵绘制的图像
- 如何重新绘制背景,使其看起来像我的“播放器”在html5-canvas中移动
- 使用图论/网络库在节点的背景上绘制图标
- 如何在 HTML5 画布上绘制背景图像
- 如何更精确地在画布上绘制,以避免背景从画布下泄漏
- 修剪透明背景的图像绘制在画布与PHP或javascript
- 在画布上绘制生成的背景时的一些建议
- 当JS改变页面高度时,Body背景CSS梯度不会重新绘制
- 为高图中的工具提示绘制自定义背景形状
- globalCompositeOperation绘制白色背景
- 如何有效地更新数百个元素上动态绘制的背景