保存图像以在我的应用程序中显示它们的最佳方法?

时间:2015-02-03 13:23:12

标签: ios xcode uiimage

我正在开发一款每天都会拍摄用户照片的应用。一切正常,图像保存到设备。我目前可以从标准照片应用程序访问它们。

在编写应用程序的下一步中,我喜欢在我的应用程序中构建一个库。我在考虑iCarousel,但我还不确定。

现在我想知道这是保存用户自己制作的图像的最佳方法吗?用户应该可以使用我的应用程序中的库中设备上的标准照片应用程序来访问图片。我的目标是iOS 8.1。

目前我正在保存这样的照片:

- (void)takePhoto{
    NSLog(@"CameraController: takePhoto()");

    AVCaptureConnection *videoConnection = nil;

    for(AVCaptureConnection *connection in stillImageOutput.connections){
        for(AVCaptureInputPort *port in [connection inputPorts]){
            if([[port mediaType] isEqual:AVMediaTypeVideo]){
                videoConnection = connection;
                break;
            }
        }
        if(videoConnection){
            break;
        }
    }
    [stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler:^(CMSampleBufferRef imageDataSampleBuffer, NSError *error) {
        if(imageDataSampleBuffer != NULL) { //this code gets executed if a photo is taken
            NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer];
            UIImage *combined = [UIImage imageWithData:imageData];
            //....            
            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                    UIImageWriteToSavedPhotosAlbum(combined, nil, nil, nil);
                    NSLog(@"CameraController: Image saved");
                });
            }
        }];
    }

2 个答案:

答案 0 :(得分:0)

您应该阅读(并使用)PhotoKit

答案 1 :(得分:0)

I am using iCarousel now. I use NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); for generating a path for the pictures I like to save and to display in iCarousel.