如何将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"];
爱是爱可可=)
答
我的形象以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];
iOS上有'NSUnarchiver'和'NSArchiver'吗? – 2010-08-20 07:55:16
是/系统/库/框架/基础框架 – 2010-08-20 09:24:37