gpt4 book ai didi

iphone - writeImageToSavedPhotosAlbum 太慢?

转载 作者:行者123 更新时间:2023-12-03 20:22:12 26 4
gpt4 key购买 nike

我正在开发一个 iPhone 应用程序,其中包含一些标准的“相机”功能。保存到相机胶卷真的太慢了​​,在iPhone 4上大约需要四秒钟。有什么办法可以提高速度吗?

如果您查看默认的 iPhone 相机应用程序,它可以在没有很大延迟的情况下拍摄后续照片,并且照片会立即保存到磁盘(如果您单击最后一张照片所在的小方 block ,位于屏幕的下角)屏幕上,照片库始终会在保存的照片上打开,即使您拍摄了大量照片)。

这是我用来从缓冲区获取图像然后将照片保存在相机胶卷中的重要代码的两个片段;我尝试在第二个片段之前和之后放置 NSLog,它确认了 4 秒的延迟才能完成保存过程。

[stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler: ^(CMSampleBufferRef imageSampleBuffer, NSError *error)
{
NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageSampleBuffer];
UIImage *image = [[UIImage alloc] initWithData:imageData];

...

     ALAssetsLibrary *library = [[[ALAssetsLibrary alloc] init] autorelease];
NSLog(@"SCATTO: Inizio salvataggio in library...");
[library writeImageToSavedPhotosAlbum:[image CGImage] metadata:exifAttachments_dictionary completionBlock:^(NSURL *newURL, NSError *error) {
if (error){
NSLog(@"SCATTO: Salvataggio in library: ERRORE");
} else {
NSLog(@"SCATTO: Salvataggio in library: OK");
[self loadNewestPhoto];
}
}];

最佳答案

我不是这方面的专家,但对此主题很好奇。

我认为保存图像总是需要大量时间。如果您希望支持 future 的 iPhone,因为它们很可能会创建比现在更大的图像,则尤其如此。

我认为可以提高性能的一件事是如果您使用 -(void)writeImageDataToSavedPhotosAlbum: ... 而不是 - (void)writeImageToSavedPhotosAlbum: ...。 JPEG 提取和压缩过程可以忽略。它的成本非常高,因为它将大约 3MB 的数据转换为大约 15MB。

这纯粹是猜测,但如果JPEG提取/压缩是硬件加速的,那么如果同时显示相机输出,可能会占用硬件资源。所以这个过程必须由CPU来完成。

关于iphone - writeImageToSavedPhotosAlbum 太慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7300286/

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