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)

还有一些潜在的优化,但它们取决于图像的类型(alpha、大小、类型……)。

于 2013-08-12T12:44:11.420 回答