如何将nsdata转换为图像?

问题描述:

我正在开发一个应用程序,我将其转换为NSData并将其转换为图像并显示在图像视图中。现在我想保存这些数据并在UIImageView中再次显示。 我用NSUserDefaults保存NSData和再次检索这些数据并将其转换为图像和图像显示它view.But我没有得到的图像back.my代码如下:如何将nsdata转换为图像?

//for saving nsdata using nsuserdefaults method:- 
NSUserDefaults *defsMVC=[NSUserDefaults standardUserDefaults]; 
[defsMVC setObject:stateMVC forKey:@"MapImageObject"]; 

//for retrieving nsdata from nsuserdefaults and display it in imageview 
NSUserDefaults *defsMVC=[NSUserDefaults standardUserDefaults]; 

NSData *stringmapdata=[defsMVC dataForKey:@"MapImageObject"]; 

UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 6, 320,415)]; 
UIImage *image = [UIImage imageWithData:stringmapdata]; 
[imageView setImage:image]; 
[image release]; 
[self.view addSubview:imageView]; 
[self.view sendSubviewToBack:imageView]; 
[imageView release]; 

我不认为你应该将数据存储在用户默认值中,尝试将其存储在像“yourimage.png”这样的文件中,然后你可以简单地执行[[NSImage alloc] initWithConentsOfFile:path];

而且其保存在用户违约之前,请尝试使用NSArchiver:

NSImage *image = [NSUnarchiver unarchiveObjectWithData:[[NSUserDefaults standardUserDefaults] objectForKey:@"someKey"]]; 

并为它归档到用户的默认值:

[[NSUserDefaults standardUserDefaults] setObject:[NSArchiver archivedDataWithRootObject:image] forKey:@"someKey"]; 

爱是爱可可=)

+0

iOS上有'NSUnarchiver'和'NSArchiver'吗? – 2010-08-20 07:55:16

+0

是/系统/库/框架/基础框架 – 2010-08-20 09:24:37

我的形象以NSData的形式存储在第6列中,首先我必须将该数据获取到NSData对象中。将该NSData转换为图像。

data = [[NSData alloc] initWithBytes:sqlite3_column_blob(statement, 6) 
           length:sqlite3_column_bytes(statement, 6)]; 
img = [UIImage imageWithData:data]; 
imgdata = [[NSMutableArray alloc]initWithObjects:img, nil];