我们在项目中,上传图片多用于头像与评论,并且大多是jpeg的格式为主。
在上传头像的参数中,我们首先与需要一个上传的图片(UIImage)和一个图片的压缩倍数(float),再者我们需要一个图片的类型(jpeg/png),最后我们需要和后台商量一个格式来设计把图片转成字符串后的传输格式。
代码:
- (NSString *) image2DataURL: (UIImage *) image
{
NSData *imageData = nil;
NSString *mimeType = nil;
//图片要压缩的比例,后台要求是150的高度,这个150可以根据你的需求改动
CGFloat x= 150/image.size.height;
if (x>1) {
x=1.;
}
//根据需要的格式把图片按比例,压缩成相应大小的文件。
//如果是png格式则可用 UIImagePNGRepresentation
imageData = UIImageJPEGRepresentation(image, x);
//和服务器商量的格式,这个是标准格式,但是 data:%@ 这一块包括 base64, 都可以写在服务器
//如果是png格式则 image/png
mimeType = @"image/jpeg";
return [NSString stringWithFormat:@"data:%@;base64,%@", mimeType,
[imageData base64EncodedStringWithOptions: 0]];
}