writeImageToSavedPhotosAlbum的速度太慢?
-
22-10-2019 - |
题
我正在开发一个应用程序的iPhone,其中包括一些标准"相机"的功能。节省卷相机真的是太慢,这需要有关的四秒在iPhone4。是否有某种方式提高速度?
如果你看一下默认的iPhone摄像机应用程序,它可以采取后续的照片没有大的拖延,并照片保存相当立即磁盘(如果你击小广场的最后一张照片,在下角的照片图书馆总是打开保存的图像,甚至如果你把一个很大的顺序)。
这里有两个snipplets的大量代码,我用得到的图像的缓冲区,然后向保存的照片的摄像头卷;我试图把一只之前和之后的第2snipplet,它确认了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];
}
}];
解决方案
我不是专家在这,但我感到好奇的话题。
我认为那里一直将大量时间,需要保存一个图像。这尤其是如果您愿意支持今后的iphone手机这很可能会创造更大的图像。
一件事,我认为可以改善性能的是如果您使用 -(void)writeImageDataToSavedPhotosAlbum: ...
而不是的 - (void)writeImageToSavedPhotosAlbum: ...
.JPEG提取和压缩工艺可以忽略。这是非常昂贵的,因为它把大约3MB的数据,对约15兆字节.
这是纯推测,但是如果JPEG提取/压缩加速硬件,硬件资源可以被占领的如果显示的摄像机出在同一时间。所以该过程必须由CPU。
不隶属于 StackOverflow