Если вы можете обрабатывать изображения меньшего размера, вы можете уменьшить размер текущего изображения следующим образом:
+ (UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize;
{
UIGraphicsBeginImageContext( newSize );
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
Я обычно помещаю этот метод в категорию UIImage + scale.h.
Я не уверен насчет оптимизации png, которые остались бы в том же размере.