UIImage存入数据库

在之前,我们使用以下方法进行NSData与UIImage的转换

//UIImage转换为NSData
NSData *imageData = UIImagePNGRepresentation(aimae);

//NSData转换为UIImage
NSData *imageData = [NSData dataWithContentsOfFile: imagePath];
UIImage *image = [UIImage imageWithData: imageData];

但是我们把NSData保存到FMDB数据库里的时候,再次从数据库取出,就会报错,即使设了断点,NSData有值,也依然无法赋给UIImage使用。
解决办法是不使用SQLITE3的blob类型,而是使用系统自带的base64加密一下,然后使用string类型进行保存

NSData *imageData = [[NSData alloc] initWithData:UIImagePNGRepresentation(UImageGet)];

NSString *imageFinal = [imageData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];

从数据库取出该字段,给base64解密,然后再次转为NSData类型即可给UIImage使用.

 NSString *imageGet =[resultSet stringForColumn:@"modeImage"];
 NSData *imgData = [[NSData alloc] initWithBase64EncodedString:imageGet options:NSDataBase64DecodingIgnoreUnknownCharacters];
  UIImage *imageShow = [UIImage imageWithData:imgData];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容