iPhone 4上的CGContextDrawImage非常慢

时间:2010-10-12 13:59:35

标签: iphone bitmap

我将CGBitmapContextRef用于大型可变图像。 比我在UIView.drawRect中绘制一个部分。 这在iPhone 3GS上运行良好 - 17FPS。 但是在iPhone 4上调用subj方法非常慢 - 总FPS为1.5!

剖析器说:在3GS上调用CGSBlendBGRA8888到RGBA8888,占总时间的23%。在4G相同的代码调用argb32_sample_RGBA32 / argb32_image_mark需要~90%。哇!

位图的颜色空间是CGColorSpaceCreateDeviceRGB。并且创建标志是kCGImageAlphaPremultipliedLast。

我可以做些什么来提高iPhone 4的性能?有什么建议吗?

1 个答案:

答案 0 :(得分:8)

尝试设置:

CGContextSetInterpolationQuality(myBitmapContext, kCGInterpolationNone);

在您的位图上。 kCGInterpolationLow是另一种选择。

另一种可能有用的技术是在视图中添加CALayer,并将CALayer的内容设置为位图,而不是在视图的drawRect中绘制位图图像。