在iOS中处理大图片

我想允许用户选择照片,而不限制大小,然后编辑它.

我的想法是创建与要编辑的屏幕大小相同的大照片的缩略图,然后,当编辑完成时,使用大照片进行与缩略图相同的编辑.

当我使用UIGraphicsBeginImageContext来创建一个缩略图时,会引起内存问题.

我知道由于硬件限制,很难直接编辑整个大图像,所以我想知道是否有一种方法可以将大图像缩小到2048 * 2048以下,而不是内存问题?

我发现有一个BitmapFactory类,它有一个inSampleSize选项,可以在Android平台中对照片进行缩减.在iOS上怎么做?

解决方法

您需要使用UIImage处理图像加载,而实际上并不会将图像加载到内存中,然后根据所需的图像大小创建位图上下文(因此这将是所使用的内存量).然后,您需要使用CGContextDrawImage,将CGImageCreateWithImageInRect转换到目标上下文中,从原始图像(这是图像数据的一部分加载到内存中)遍历多次绘制图块.

this sample code from Apple.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...