近期在项目需求中,有上传图片到服务器的需求,不过一般上传图片到服务器,通常会采用把图片转化成NSString进行上传。同样,有时候服务器下发的图片,除了是一个图片URL外,还有可能直接把图片返回,避免客户端再次请求,那这时候就需要NSString转化成UIImage了。
那其实实现这两个需求很简单:
一、图片转换成字符串
-(NSString *)UIImageToBase64Str:(UIImage *) image
{
NSData *data = UIImageJPEGRepresentation(image, 0.6f);
NSString *encodedImageStr = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
return encodedImageStr;
}
注:0.6f.指的是,图片压缩率,一般图片都过大,为了减少转换成nsdata所需要的时间和服务器的压力,一般会对图片进行压缩
二、字符串转换成图片
-(UIImage *)Base64StrToUIImage:(NSString *)encodedImageStr
{
NSData *decodedImageData = [[NSData alloc] initWithBase64Encoding:encodedImageStr];
UIImage *decodedImage = [UIImage imageWithData:_decodedImageData];
return decodedImage;
}