1
我合成兩張(靜態)圖像,每秒幾次。這段代碼在3G上跑得非常快,而且在iPhone4上真的很慢。 TimeProfiler揭示了對UIImage drawAtPoint的調用:最終調用了一個非常昂貴的名爲「argb_sample_RGBA21」的東西。這個程序永遠不會在3G上呼叫。是否有一些字節順序轉換可以在靜態圖像上執行一次,從而節省了字節順序轉換?改善iPhone4上的Core Graphics性能
+ (UIImage *) createInterpolatedImageBetween: (UIImage *) imageA
andImage: (UIImage *) imageB
forValue: (float) fractionalValue {
UIGraphicsBeginImageContextWithOptions(CGSizeMake(imageA.size.width, imageA.size.height), YES, 0.0);
[imageA drawAtPoint: CGPointMake(0,0)];
[imageB drawAtPoint: CGPointMake(0,0)
blendMode: kCGBlendModeNormal
alpha: fractionalValue];
UIImage *answer = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return answer;
}
在iPhone4的圖像可以比3GS更加大,我想這就是原因。確保你正在處理你想要的尺寸的圖像;) – nacho4d 2010-11-20 14:55:14