gpt4 book ai didi

iPhone 相机可以快速拍摄照片,但保存照片时遇到问题

转载 作者:行者123 更新时间:2023-12-03 19:41:56 24 4
gpt4 key购买 nike

我正在尝试使用相机快速拍摄并保存照片,就像 iPhone 一样快。问题是它们直到最后才保存,然后需要永远,或者大约 1/2 到 3/4 根本不保存(Write busy 错误或 -[ NSKeyedUnarchiver initForReadingWithData:]: 数据为 NULL)。

我敢打赌我只是让手机内存重载,但我想不出一种有效的方法来处理它。标准 iPhone 相机应用程序可以很好地处理它 - 几乎每秒拍摄 1 张照片,并且保存没有任何问题。

关于如何更好地管理进程/内存,以便它可以在运行时保存但仍能快速拍摄,有什么想法吗?

这是我的一些代码。每当 self.readyToTake = YES 时都会调用 takePicture

- (void)takePicture {    self.delegate = self;    [super takePicture];    self.readyToTake = NO;}- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {    self.readyToTake = YES;    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];    UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);}- (void)image:(UIImage*)image didFinishSavingWithError:(NSError *)error contextInfo:(NSDictionary*)info {    if (error)    {        NSLog([NSString stringWithFormat:@"** ERROR SAVING PHOTO: %@", [error localizedDescription]]);    }}

感谢您的帮助!

<小时/>

编辑

如果我在保存之前将照片尺寸调整为更小的尺寸(例如 480x640),那么我可以快速保存。但是,我想捕获并保存全尺寸图像。 native 相机应用程序似乎可以很好地处理它。

最佳答案

你可以这样做。即,仅在保存上一张照片后才能拍摄下一张照片。还引入自动释放池进行内存管理。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
[pool drain];
}


- (void)image:(UIImage*)image didFinishSavingWithError:(NSError *)error contextInfo:(NSDictionary*)info {
if (error)
{
NSLog([NSString stringWithFormat:@"** ERROR SAVING PHOTO: %@", [error localizedDescription]]);
}
self.readyToTake = YES;
}

关于iPhone 相机可以快速拍摄照片,但保存照片时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6605350/

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