我想让用户选择一张照片,而不限制大小,然后对其进行编辑。
我的想法是创建一个与屏幕大小相同的大照片的缩略图进行编辑,然后,当编辑完成后,使用大照片进行与缩略图相同的编辑。
当我使用 UIGraphicsBeginImageContext
创建缩略图时,会导致内存问题。
我知道由于硬件限制很难直接编辑整个大图像,所以我想知道是否有一种方法可以在没有内存问题的情况下将大图像下采样到小于 2048*2048?
我发现有一个 BitmapFactory
类,它有一个 inSampleSize
选项,可以在 Android 平台上对照片进行下采样。如何在 iOS 上完成此操作?
最佳答案
您需要使用 UIImage
处理图像加载,它实际上不会将图像加载到内存中,然后以您想要的结果图像的大小创建一个位图上下文(因此这将是使用的内存量)。然后,您需要使用 CGImageCreateWithImageInRect
从原始图像(这是部分图像数据加载到内存中的位置)迭代多次,使用 CGContextDrawImage
将图 block 绘制到目标上下文中>.
关于ios - 在 iOS 中处理大图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16043204/