3

我从相机中获取图像,我必须考虑它们处于不同的方向。我采取的第一种方法是使用这个代码片段来创建一个正确旋转的UIImage. 计算 aCGAffineTransform然后使用 绘制图像CGContextDrawImage

但是,此操作需要 2-3 秒才能完成。

我采用的第二种方法是计算我必须旋转图像的度数,以及是否必须翻转它,然后在绘制UIImage. 这种方法花费的时间可以忽略不计。

具体来说,我使用的是 Cocos2D,因此无论哪种情况,我都将 转换UIImage为 a CCTexture2D,使用该纹理创建一个精灵,然后绘制它。在第一种情况下,我创建了一个新的UIImage并有一个未旋转的CCSprite. 在第二个中,我使用了相同的UIImage但有一个旋转的精灵。

为什么第二种方法这么快?最终结果是相同的:旋转的图像。似乎无论哪种方式,都必须以相同的方式操作相同的位和字节才能获得此结果。

4

1 回答 1

1

看看这个问题、实验和答案UIImage可能已经在后台进行了一些优化(由于我们不知道实现细节,所以没有真正的方法知道)。

于 2013-10-18T21:04:51.673 回答