Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get last image from Photos.app?

I have seen other apps do it where you can import the last photo from the Photos app for quick use but as far as I know, I only know how to get A image and not the last (most recent one). Can anyone show me how to get the last image?

like image 954
SimplyKiwi Avatar asked Jan 15 '12 04:01

SimplyKiwi


People also ask

How do you extract a still shot from a live photo?

Tap the Albums tab, then tap the Live Photos section near the bottom of the page. Tap the Live Photo you want to pick a still from, and tap Edit. Tap the Live Photo icon. Select a frame from the Live Photo to save as a Key Image.


1 Answers

This code snippet will get the latest image from the camera roll (iOS 7 and below):

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];  // Enumerate just the photos and videos group by using ALAssetsGroupSavedPhotos. [library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {      // Within the group enumeration block, filter to enumerate just photos.     [group setAssetsFilter:[ALAssetsFilter allPhotos]];      // Chooses the photo at the last index     [group enumerateAssetsWithOptions:NSEnumerationReverse usingBlock:^(ALAsset *alAsset, NSUInteger index, BOOL *innerStop) {          // The end of the enumeration is signaled by asset == nil.         if (alAsset) {             ALAssetRepresentation *representation = [alAsset defaultRepresentation];             UIImage *latestPhoto = [UIImage imageWithCGImage:[representation fullScreenImage]];              // Stop the enumerations             *stop = YES; *innerStop = YES;              // Do something interesting with the AV asset.             [self sendTweet:latestPhoto];         }     }]; } failureBlock: ^(NSError *error) {     // Typically you should handle an error more gracefully than this.     NSLog(@"No groups"); }]; 

iOS 8 and above:

PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init]; fetchOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]]; PHFetchResult *fetchResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:fetchOptions]; PHAsset *lastAsset = [fetchResult lastObject]; [[PHImageManager defaultManager] requestImageForAsset:lastAsset                                           targetSize:self.photoLibraryButton.bounds.size                                          contentMode:PHImageContentModeAspectFill                                              options:PHImageRequestOptionsVersionCurrent                                        resultHandler:^(UIImage *result, NSDictionary *info) {                                             dispatch_async(dispatch_get_main_queue(), ^{                                                 [[self photoLibraryButton] setImage:result forState:UIControlStateNormal];                                             });                                        }]; 
like image 106
SimplyKiwi Avatar answered Oct 06 '22 03:10

SimplyKiwi