0

画像をマージすると思われるアプリに取り組んでいますが、関数を繰り返し呼び出すと時間がかかりすぎます。関数の応答を改善する方法を教えてください。

- (UIImage *) addImageToImage:(UIImage *)img withImage2:(UIImage *)img2 andRect:(CGRect)cropRect withImageWidth:(int) width
{
CGSize size = CGSizeMake(width,40);
UIGraphicsBeginImageContext(size);

CGPoint pointImg1 = CGPointMake(0,0);
[img drawAtPoint:pointImg1];

CGPoint pointImg2 = cropRect.origin;
[img2 drawAtPoint: pointImg2];

UIImage* result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return result;
}

この関数は 30 ~ 50 回の繰り返しで呼び出されるため、効率を改善する必要があります。

4

1 に答える 1

3

いくつかのアイデア:

  1. 結果をキャッシュします (画像が同じパラメーターで再利用される場合)
  2. マージを同時に実行する
  3. CGBitmapContextCreateコンテキストを再利用します (代わりに を使用してコンテキストを作成しますUIGraphicsBeginImageContext)
  4. 補間品質をより低い値に設定します。CGContextSetInterpolationQuality(context, kCGInterpolationNone)

いくつかの潜在的な最適化がありますが、それらは画像のタイプ (アルファ、サイズ、タイプなど) によって異なります。

于 2013-08-12T12:44:11.420 に答える