与NSData的UIImage转换

时间:2014-07-28 16:07:50

标签: ios objective-c uiimage nsdata

我通过存储其字符串表示形式将图像存储在数据库中,如下所示:

NSData *imageData = UIImageJPEGRepresentation(myImage, 0.7);
NSString *imageString = [[NSString alloc] initWithData: imageData encoding:NSUTF8StringEncoding];

然后将该字符串存储在数据库中。稍后在我的代码中,我需要将其从数据库中拉出并显示它。我试图像这样检索它:

NSData *data = [[items[i] objectForKey:@"image"] dataUsingEncoding:NSUTF8StringEncoding];
UIImage *newImage = [[UIImage alloc] initWithData:data];

其中items是从数据库中检索的数据数组。但是,当我检索它时,newImage为零。我的编码方法是我在这个网站上最常见的编码方法,但现在我认为它一定是问题所在。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

考虑使用base 64编码的字符串作为数据的表示。例如,从iOS 7.0开始,您可以通过调用:

从图像数据中获取字符串
// Convert to string
NSString *base64String = [imageData base64EncodedStringWithOptions:0];
// Convert string to image
NSData *dataFromString = [[NSData alloc] initWithBase64EncodedString:base64String options:0];
UIImage *image = [UIImage imageWithData:dataFromString];