您可能知道如何呈现图像选择器:
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
[viewController presentModalViewController:picker animated:YES];
通过上面的 viewController 实现了 UIImagePickerControllerDelegate 并确保你实现了这个功能:
- (void)imagePickerController:(UIImagePickerController *)returnedPicker didFinishPickingMediaWithInfo:(NSDictionary *)info
和
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)returnedPicker
当用户选择了一张照片时,第一个方法被调用。在这种方法中,您可以使用以下方法获取图像:
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
要将其写入文件,您可以将其设为 JPEG 或 PNG。如果是 JPEG,您可以这样做:
[UIImageJPEGRepresentation(image, 1.0) writeToFile:filename atomically:YES];
您只需要设置文件名。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsDir = [paths objectAtIndex:0];
NSString *filename = [docsDir stringByAppendingPathComponent:@"myFilename.jpg"];
要将图像恢复为 UIImage,请执行以下操作:
NSData *data = [NSData dataWithContentsOfFile:filename;
if(data != nil)
UIImage *image = [UIImage imageWithData:data];