我将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的性能?有什么建议吗?
答案 0 :(得分:8)
尝试设置:
CGContextSetInterpolationQuality(myBitmapContext, kCGInterpolationNone);
在您的位图上。 kCGInterpolationLow是另一种选择。
另一种可能有用的技术是在视图中添加CALayer,并将CALayer的内容设置为位图,而不是在视图的drawRect中绘制位图图像。