iOS:在 UIImageView 中保存图片
Posted
技术标签:
【中文标题】iOS:在 UIImageView 中保存图片【英文标题】:iOS: Saving A Picture In UIImageView 【发布时间】:2012-03-27 19:12:29 【问题描述】:我有一个应用程序,允许用户从他们的相机胶卷中选择一张图片,并将其显示在 UIImageView 中。我通常使用这种方法将文本保存在文本字段中,并且我认为它也适用于图像,但我遇到了一些问题。没有错误,但它根本不保存图像。
这是我正在使用的相关代码:
.h:
#define kFilename9 @"PGdata.plist"
...
- (NSString *)dataFilePath;
.m:
- (NSString *)dataFilePath
NSArray *paths = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return [documentsDirectory stringByAppendingPathComponent:kFilename9];
- (void)applicationDidEnterBackground:(NSNotification *)notification
NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:image.image];
[array writeToFile:[self dataFilePath] atomically:YES];
- (void)viewDidLoad
...
NSString *filePath = [self dataFilePath];
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath])
NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath];
image.image = [array objectAtIndex:0];
UIApplication *app = [UIApplication sharedApplication];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationDidEnterBackground:)
name:UIApplicationDidEnterBackgroundNotification
object:app];
[super viewDidLoad];
【问题讨论】:
【参考方案1】:您必须首先使用 UImagePNGRepresentation 或 UIImageJPEGRepresentation 将 UIImage 转换为 PNG 或 JPG。这些函数返回 NSData,然后您可以将其写入文件。
【讨论】:
【参考方案2】:你可以按照这种方式保存。
UIImage * image;//the image you want to save
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir=[paths objectAtIndex:0];
NSFileManager *filemanager=[NSFileManager defaultManager];
NSData * imagedata=UIImageJPEGRepresentation(image,1);
NSString *savePath= [docDir stringByAppendingPathComponent:@"imageName.jpg"];
BOOL isdic=NO;
BOOL isHave=[filemanager fileExistsAtPath:savePath isDirectory:&isdic];
if (isHave==YES&&isdic==NO)
[filemanager removeItemAtPath:savePath error:nil];
BOOL result= [imagedata writeToFile:savePath atomically:YES];
【讨论】:
以上是关于iOS:在 UIImageView 中保存图片的主要内容,如果未能解决你的问题,请参考以下文章
iOS6中使用restoreIdentifier保存UIImageView的状态