我想允许用户选择照片,而不限制大小,然后编辑它.
我的想法是创建与要编辑的屏幕大小相同的大照片的缩略图,然后,当编辑完成时,使用大照片进行与缩略图相同的编辑.
当我使用UIGraphicsBeginImageContext来创建一个缩略图时,会引起内存问题.
我知道由于硬件限制,很难直接编辑整个大图像,所以我想知道是否有一种方法可以将大图像缩小到2048 * 2048以下,而不是内存问题?
我发现有一个BitmapFactory类,它有一个inSampleSize选项,可以在Android平台中对照片进行缩减.在iOS上怎么做?
解决方法
您需要使用UIImage处理图像加载,而实际上并不会将图像加载到内存中,然后根据所需的图像大小创建位图上下文(因此这将是所使用的内存量).然后,您需要使用CGContextDrawImage,将CGImageCreateWithImageInRect转换到目标上下文中,从原始图像(这是图像数据的一部分加载到内存中)遍历多次绘制图块.