gpt4 book ai didi

iphone - UIImagePickerControllerSourceTypeCamera 占用内存

转载 作者:行者123 更新时间:2023-12-03 18:58:25 24 4
gpt4 key购买 nike

我使用 UIImagePickerController 是为了让用户通过拍摄新照片或从图库中选择图像来在我的应用程序中选择图像。使用画廊,该应用程序运行良好。但如果我使用相机作为源,该应用程序会占用大量内存,并最终在变得非常慢后被杀死。

有人可以告诉我使用 UIImagePickerControllerSourceTypeCamera 的最佳方法吗?

这是我正在使用的代码

if(![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
return;
picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.delegate = self;
[[self navigationController] presentModalViewController:picker animated:YES];
[picker release];

最佳答案

使用 UIImagePickerController 没有什么技巧——它会占用大量内存,你只能忍受它。完成后释放它是最高效的。

不过,这是关于图像选择器本身的。问题的另一部分是您如何处理它返回给您的 UIImage 对象。按照 iPhone 的标准,这些都是大对象,你确实无法将其中的很多内容保留在内存中。如果您要显示图像,那就是生活,但是屏幕上没有的图像可以通过 UIImageJPEGRepresentation() 和 NSData 的 writeToFile:atomically: 安全地卸载到文件中。

如果您确实需要显示多张图像,请考虑缩小它们。相机的 1600x1200 分辨率已经比屏幕大很多了,如果屏幕上有多个图像,那就更夸张了。缩放到较低的分辨率可显着降低内存需求。执行此操作的示例代码并不难找到 - 请参阅 UIImagePickerController camera preview is portrait in landscape app例如。

关于iphone - UIImagePickerControllerSourceTypeCamera 占用内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/565886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com