我的应用程序正在从网络下载一组图像文件,并将它们保存到本地 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 将图像保存到应用程序文档文件夹
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?