获取通过iPhone相机捕获的最后一张图像

Dip*_*ani 2 iphone camera uiimage ios4

我正在尝试以编程方式获取iPhone中相机捕获的图片.现在,问题是我正在使用AVCaptureInput和其他AVFoundation标头并访问iPhone的摄像头而不是简单的UIImagePickerViewController因为,程序需要在主视图内显示摄像机镜头的小视图.所以现在,问题是我需要获取我捕获的最后一个图像.它存储在库中的相机卷文件夹中.我需要将其显示为最后捕获的图​​像的预览 - 就像iPhone的相机一样.

omz*_*omz 7

您可以使用AssetsLibrary框架访问相机胶卷中的照片.

这样的东西应该用于将最后一个图像作为缩略图:

- (void)updateLastPhotoThumbnail
{
    [assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
        NSInteger numberOfAssets = [group numberOfAssets];
        if (numberOfAssets > 0) {
            NSInteger lastIndex = numberOfAssets - 1;
            [group enumerateAssetsAtIndexes:[NSIndexSet indexSetWithIndex:lastIndex] options:0 usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
                UIImage *thumbnail = [UIImage imageWithCGImage:[result thumbnail]];
                if (thumbnail && thumbnail.size.width > 0) {
                    photoThumbnailView.image = thumbnail;
                    *stop = YES;
                }
            }];
        }
    } failureBlock:^(NSError *error) {
        NSLog(@"error: %@", error);
    }];
}
Run Code Online (Sandbox Code Playgroud)

这假设您将assetsLibrary初始化为实例变量.然后,您还可以观察库更改时发布的通知(也可能发生在应用程序之外):

assetsLibrary = [[ALAssetsLibrary alloc] init];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateLastPhotoThumbnail) name:ALAssetsLibraryChangedNotification object:nil];
Run Code Online (Sandbox Code Playgroud)