现在我又一个长800,宽400得canvas区域,然后手写了几个字在上面,然后我如何把写过的字和画布一起缩放到原来得1/10?
ctx.scale只能缩放画布
现在我又一个长800,宽400得canvas区域,然后手写了几个字在上面,然后我如何把写过的字和画布一起缩放到原来得1/10?
ctx.scale只能缩放画布
// 保存状态
ctx.save();
// 缩放
ctx.scale();
// 放字
ctx.fillText("几个字");
// 恢复状态
ctx.restore();
translate/scale/rotate 最终的目的是控制下一次绘制的矩阵,所以要缩放对应的图形需要在绘制到画布前做对应的「矩阵变换」
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
再弄一个隐藏canvas,存的是你写好字的状态,然后你得主canvas直接drawImage(canvas,)就好了 。你可以百度搜索一下 离屏canvas
意思就是将静态数据绘制在离屏canvas上面,在当前的canvas上面绘制离屏canvas,在再将动态数据绘制在当前canvas上面,这样就能减少静态数据的绘制次数。