2013-03-26 185 views
1

我正在製作一個應用程序,在該應用程序中我使用相機拍攝照片,並且希望將這些照片保存爲plist,以便將來可以使用。我也想從plist中檢索保存的圖像,並在imageview上顯示它們。有多種images.Please任何人都可以幫我這個將圖像添加到plist

這裏是我的代碼,我使用的是用於添加到plist中

imageArray addObject:[NSString stringWithFormat:@"%@",imageView.image]]; 

[imageArray writeToFile:plistPath atomically:YES]; 

這可是當我試圖以檢索圖像並將其設置在ImageView的我不能看到圖像。 謝謝。

+0

爲什麼??的plist不能將它們保存在沙箱中? – DivineDesert 2013-03-26 12:09:22

+0

如果你想保存plist,將圖像轉換爲nsdata並嘗試.. http://stackoverflow.com/a/9758915/344798 – coder284 2013-03-26 12:11:39

+0

http://stackoverflow.com/questions/2486705/storing-image-in -plist和http://stackoverflow.com/questions/10846620/ios-load-image-from-plist-file – iPatel 2013-03-26 12:14:29

回答

1

你不能像這種方法保存plist。支持的格式是NSData,NSString,NSArray,NSDictionary,NSDate和NSNumber。你可以將你的UIImage轉換成NSData,並可以用plist寫。

爲了將圖像轉換爲NSData的

NSData *data = UIImagePNGRepresentation(imageview.image); 
[imageArray addObject:data]; 
[imageArray writeToFile:plistPath atomically:YES]; 

也NSLog的文件路徑來尋找其中yoyr的plist被保存。

希望這有助於!

0

看到這一個,

爲了節省:

- (IBAction)saveImage { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"]; 
    UIImage *image = imageView.image; // imageView is my image from camera 
    NSData *imageData = UIImagePNGRepresentation(image); 
    [imageData writeToFile:savedImagePath atomically:NO]; 
} 

對於檢索:

- (IBAction)getImage { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"]; 
    UIImage *img = [UIImage imageWithContentsOfFile:getImagePath]; 
}