ios - 如何使用 iOS 轻松调整/优化图像大小?

我的应用程序正在从网络下载一组图像文件,并将它们保存到本地 iPhone 磁盘。其中一些图像的尺寸相当大(例如,宽度大于 500 像素)。由于 iPhone 甚至没有足够大的显示屏来显示原始尺寸的图像,因此我计划将图像调整为更小的尺寸以节省空间/性能。

此外,其中一些图像是 JPEG,它们没有保存为通常的 60% 质量设置。

如何使用 iPhone SDK 调整图片大小,如何更改 JPEG 图像的质量设置?

最佳答案

提供了一些建议作为对 this question 的回答。 .我建议了 this post 中描述的技术。 ,附上相关代码:

+ (UIImage*)imageWithImage:(UIImage*)image 
               scaledToSize:(CGSize)newSize;
{
   UIGraphicsBeginImageContext( newSize );
   [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
   UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
   UIGraphicsEndImageContext();

   return newImage;
}

就图像的存储而言,iPhone 使用最快的图像格式是 PNG,因为它对该格式进行了优化。但是,如果您想将这些图像存储为 JPEG,您可以使用 UIImage 并执行以下操作:

NSData *dataForJPEGFile = UIImageJPEGRepresentation(theImage, 0.6);

这将创建一个 NSData 实例,其中包含 60% 质量设置的 JPEG 图像的原始字节。然后可以将该 NSData 实例的内容写入磁盘或缓存在内存中。

https://stackoverflow.com/questions/612131/

相关文章:

ios - Xcode MyProjectName-Bridging-Header.h 不存在

objective-c - 从 iOS 上的 UIView 将图像保存到应用程序文档文件夹

iphone - 以编程方式请求访问联系人

objective-c - 警告 : "format not a string literal an

ios - Xcode 9 中的 "This function declaration is not

objective-c - 最佳实践 - 您自己的项目/应用程序的 NSError 域和代码

iphone - Objective C中变量位置的声明/定义?

objective-c - 何时使用 -retainCount?

objective-c - 如何在 Objective-C 中复制对象

iphone - Apple 怎么知道你在使用私有(private) API?