2010-11-20 119 views
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; 

}

+0

在iPhone4的圖像可以比3GS更加大,我想這就是原因。確保你正在處理你想要的尺寸的圖像;) – nacho4d 2010-11-20 14:55:14

回答