UIImagePicker
中的图像复制到文档目录。我使用@"UIImagePickerControllerOriginalImage"
键从UIImagePickerDelegate的字典中获取原始图像。我使用UIImagePNGRepresentation
将图像写入文件。当我添加(重复该过程)高分辨率图像(图像大小约为20 MB)时,我遇到了内存问题。我对Xcode进行了分析并使用了内存泄漏功能,它放大了以下代码片段,该代码片段负责泄漏。
@autoreleasepool {
imagesData = UIImagePNGRepresentation(images);
[imagesData writeToFile:name atomically:NO];
imagesData = nil;
//[UIImageJPEGRepresentation(images, 1.0) writeToFile:name atomically:YES];
}
我在这里看到许多关于由UIImagePNGRepresentation
引起的内存泄漏的问题。但是我没有找到解决我的问题的合适解决方案。需要帮助。
ALAssetsRepresentation
获取缩略图并以NSData
格式返回?这样我就可以完全避免使用UIImagePNGRepresentation
或UIImageJPEGRepresentation
了。 - Xavi ValeroALAsset
的thumbnail
方法来获取缩略图。或者你可以使用一些图片调整大小例程来调整默认表示的大小。 - RobrequestImageDataForAsset
来获取资产的原始NSData
。请参见https://dev59.com/FYbca4cB1Zd3GeqPWXs6#27709329。 - Rob