如何默认的摄像头的iPhone应用程序设法保存照片这么快?(How does the default

2019-08-20 06:02发布

到目前为止,我已经成功地创建用于iPhone的应用程序,需要多个图像,每个约3秒的时间间隔。 我真的处理在一个单独的线程异步每个图像和一切都很好,直到它到达时刻保存在iPhone盘上的图像。 然后,它需要大约12秒,将图像保存到使用JPEG表示磁盘。

苹果是怎么做到的,他们怎么设法保存单个图像如此之快的磁盘有他们使用了一招? 我看到了动画转移用户了一会儿,但还是需要的时间低于12秒!

提前致谢。

Answer 1:

我还没有试过,但我不会这么肯定,苹果没有使用相同的方法。 苹果的设计理念的一个重要组成部分依赖于从用户隐藏运行中断。 苹果的代码可能需要尽可能多的时间你的,但仅仅是在隐藏整个节省时间,从用户的感知熟练。

如果有人不能告诉你苹果如何实际上并保存更快,我建议在想方设法掩盖了节省时间。



Answer 2:

其实苹果利用其籽粒司机AppleJPEGDriver,这是一个硬件JPEG编码API和比软件编码(JPEGRepresnetaion)和一些在他们的越狱应用程序(cycorder视频录制应用程序),使用它的人快得多。 苹果公司应该给予同样的功能,它的用户,但他们是苹果:)



Answer 3:

如果谷歌张望了一下......还有的人用同样的问题一大堆。

我没有找到答案。 总的结论似乎是,苹果要么使用一些内部API和旁路公共API开销或某些硬件编码器。

想你的运气了快速保存图像



Answer 4:

我有我的应用程序这一问题,对储蓄会挂,所以我用大中央调度。

下面是setImage方法我的图像缓存类的,如果的UIImage有一个像它保存它,否则它删除。 你可以适应这个根据自己的需要希望,只能在iOS 4以上的工作。 该代码是启用ARC。

-(void)setImage:(UIImage *)image{
    if (image == nil){
    NSLog(@"Deleting Image");
    // Since we have no image let's remove the cached image if it exists
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                   NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
                   NSUserDomainMask, YES) objectAtIndex:0];
                   [[NSFileManager defaultManager] removeItemAtPath:[cachePath
                   stringByAppendingPathComponent:@"capturedimage.jpg"] error:nil];
                 });
    }
else {
      NSLog(@"Saving Image");
      // We've got an image, let's save it to flash memory.
      dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                     NSString *cachePath = 
                    [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
                    NSUserDomainMask, YES) objectAtIndex:0];
                    NSData *dataObj = UIImagePNGRepresentation(image);
                    [dataObj writeToFile:[cachePath 
                    stringByAppendingPathComponent:@"capturedimage.jpg"] atomically:NO];
                  });
     }

imageCache = image;

}


文章来源: How does the default Camera iPhone app manages to save a photo so fast?