我正在使用 canvas 制作一个画笔库,会在 canvas 上不停的绘制东西。我的实现思路在绘制完当前的图形之后通过 transferToImageBitmap 保存当前的 canvas 快照。下一次绘制之前会先将之前的快照先绘制到 canvas,再绘制当前的图形。发现恢复快照的 drawImage 方法性能很差,导致绘制不太流畅。另外发现绘制的过程中 cpu 占用率很高,gpu 占用率却很低,canvas 目前会使用 gpu 进行加速吗?
我正在使用 canvas 制作一个画笔库,会在 canvas 上不停的绘制东西。我的实现思路在绘制完当前的图形之后通过 transferToImageBitmap 保存当前的 canvas 快照。下一次绘制之前会先将之前的快照先绘制到 canvas,再绘制当前的图形。发现恢复快照的 drawImage 方法性能很差,导致绘制不太流畅。另外发现绘制的过程中 cpu 占用率很高,gpu 占用率却很低,canvas 目前会使用 gpu 进行加速吗?
1 回答1.1k 阅读✓ 已解决
1 回答1.4k 阅读
1 回答1.2k 阅读
1 回答1.2k 阅读
1 回答1.2k 阅读
1 回答1k 阅读
1 回答1k 阅读
由于OffscreenCanvas是用CPU绘制且很消耗性能,目前的解决方案是, 想保存在屏canvas的内容可以用getPixelMap,再次绘制到Canvas上用drawImage, 文档请参考:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-offscreencanvasrenderingcontext2d-V5\#getpixelmap
tips: getPixelMap不建议频繁调用,但是其性能要比offscreenCanvas好的多。