私は2回(静的な)画像を数秒間に合成しています。このコードは、3G上では非常にうまく実行され、iPhone4では本当にゆっくりと実行されます。 TimeProfilerは、UIImage drawAtPointへの呼び出しが、 "argb_sample_RGBA21"という非常に高価なものを呼び出すことを示しています。このルーチンは3G上で決して呼び出されません。静的イメージで一度実行できるバイトオーダー変換があるので、このバイトオーダー変換を保存しますか?それはCPUのみに実行され、グラフィックスハードウェアを利用していないためiPhone4でCoreGraphicsのパフォーマンスを向上させる
+ (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;
}
3GSよりもはるかに大きくなることができ、私はこれが理由だと思います。あなたが望むサイズの画像を処理していることを確認してください;) – nacho4d