合并两张图片需要花费太多时间

时间:2013-08-12 12:37:02

标签: iphone ios ios5 ios4

我正在研究我想要合并图像的应用程序,但是当我迭代地调用函数时,它花费了太多时间。任何人请告诉我如何改进函数的响应。

- (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次......所以我需要提高它的效率。

1 个答案:

答案 0 :(得分:3)

一些想法:

  1. 缓存结果(如果图像重复使用相同的参数)
  2. 同时执行合并
  3. 重复使用上下文(使用CGBitmapContextCreate而不是UIGraphicsBeginImageContext创建上下文)
  4. 将插值质量设置为较小的值:CGContextSetInterpolationQuality(context, kCGInterpolationNone)
  5. 还有一些潜在的优化,但它们取决于图像的类型(alpha,大小,类型......)。