我从相机中获取图像,我必须考虑它们处于不同的方向。我采取的第一种方法是使用这个代码片段来创建一个正确旋转的UIImage
. 计算 aCGAffineTransform
然后使用 绘制图像CGContextDrawImage
。
但是,此操作需要 2-3 秒才能完成。
我采用的第二种方法是计算我必须旋转图像的度数,以及是否必须翻转它,然后在绘制UIImage
. 这种方法花费的时间可以忽略不计。
具体来说,我使用的是 Cocos2D,因此无论哪种情况,我都将 转换UIImage
为 a CCTexture2D
,使用该纹理创建一个精灵,然后绘制它。在第一种情况下,我创建了一个新的UIImage
并有一个未旋转的CCSprite
. 在第二个中,我使用了相同的UIImage
但有一个旋转的精灵。
为什么第二种方法这么快?最终结果是相同的:旋转的图像。似乎无论哪种方式,都必须以相同的方式操作相同的位和字节才能获得此结果。