【发布时间】:2016-09-24 19:30:13
【问题描述】:
我需要一些关于有效使用画布和矩阵的建议
- 我在内存中加载了一个源位图“B0”,即 WxH
- 我有一个位图 B1,我用画布在上面绘制。
- 有一个旋转(任意角度)矩形部分 B0 的 (w_p*h_p)。我需要得到这部分并在未旋转后将其绘制到 B1 上
我想用普通的视图、画布和矩阵来做。不是surfaceviews,不是opengl
“已经有效”的方法是:
- 旋转位图 B0 以补偿所选区域旋转 --> 我们得到 B0_r
- 计算平移后的矩形,该矩形现在不会旋转。我们 有SrcRect_u
- 使用画布,将 B0_r (srcRect_u) 的选定矩形绘制到 B1
但是,如果 B0 足够大,则旋转操作非常昂贵,因为它适用于整个位图。还有就是每次都要创建一个中间位图。
我需要在一个游戏循环中重复这个步骤,这个矩形(srcRect)可以旋转和平移,所以它必须是一个“便宜”的操作来实现这个
我的问题:在 效率 方面是否有更好的方法,使用画布、矩阵和“正常”视图?
编辑 为了更好地说明我的意思,我添加了一些图片。
B0,带有旋转的选择区域
【问题讨论】:
标签: android canvas bitmap rotation