如何在 Xcode 5 for iOS 中保存和加载图像?
Posted
技术标签:
【中文标题】如何在 Xcode 5 for iOS 中保存和加载图像?【英文标题】:How do I save and load an image in Xcode 5 for iOS? 【发布时间】:2014-09-06 15:35:45 【问题描述】:我为 iPhone 制作了一款受 Flappy Bird 启发的应用。制作这个应用程序只是为了让我可以学习应用程序制作背后的编程,并希望尽快制作一个更原始和更高级的应用程序。
该应用可以加载从您的照片库或 iPhone 相机拍摄的照片。我使用了这段代码:
- (IBAction)didTapPhoto:(UITapGestureRecognizer *)sender
UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:nil delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Take a Photo", @"Use Photo Library", nil];
[actionSheet showInView:self.view];
-(void) pickPhotoFromLibrary
self.imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self.navigationController presentViewController:self.imagePicker animated:YES completion:nil];
-(void) takePhotoWithCamera
self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self.navigationController presentViewController:self.imagePicker animated:YES completion:nil];
-(void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
if (buttonIndex == actionSheet.cancelButtonIndex)return;
switch (buttonIndex)
case 0:
[self takePhotoWithCamera];
break;
case 1:
[self pickPhotoFromLibrary];
default:
break;
-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
[picker dismissViewControllerAnimated:YES completion:nil];
UIImage *image = info[UIImagePickerControllerOriginalImage];
self.imageView.image = image;
问题是:如何保存加载到ImageView中的图片,然后加载到另一个ViewController中?
我希望用户拍张照片,然后将自己用作飞扬的小鸟。我已经做了 Flappy Bird 课程,并且习惯了不同的 Flappy Bird。
唯一的问题是我希望能够将用户选择的图片保存为 .png 文件,就像它保存在支持文件中一样。图片可以默认保存,例如@"image1",在其他ViewController中可以设置ImageView加载@"image1"。
【问题讨论】:
【参考方案1】:将图片保存到 iPhone 本地文件:
NSString *imagePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *imageName = [imagePath stringByAppendingPathComponent:@"MainImage.jpg"];
NSData *imageData = UIImageJPEGRepresentation(imageView.image, 1.0);
BOOL result = [imageData writeToFile:imageName atomically:YES];
NSLog(@"Saved to %@? %@", imageName, (result? @"YES": @"NO"));
加载保存的图片:
NSString *imagePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *imageName = [imagePath stringByAppendingPathComponent:@"MainImage.jpg"];
UIImage *image = [UIImage imageWithContentsOfFile:imageName];
【讨论】:
谢谢!对不起,我是新手。我必须更改或自定义此代码中的任何内容以适应我的代码吗?以上是关于如何在 Xcode 5 for iOS 中保存和加载图像?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 .ipa 在 Xcode for iOS 中运行自动化 XCUITests
IOS 6.0 xcode 4.5 编译错误#import 代码保存在类外的文件中
iOS - Xcode升级到5.1& iOS升级到iOS7.1问题:Undefined symbols for architecture x86_64
在 Xcode for iOS 中导入 Points of Interest 仪器的路标代码名称