iOS开发中 UIImage可能经常需要转为NSData 上传 传递等等
有两个比较常用的方法
UIImageJPEGRepresentation
UIImagePNGRepresentation
第一个方法有两个参数
UIImageJPEGRepresentation(UIImage * __nonnull image, CGFloat compressionQuality);
我们直接上代码
吧两种方式做一个比较
我们创建一个项目,调用系统的相册或者照相机 取一张图片
先用第一种方式转换一个清晰度较高的图片(此处我们贴出重要代码,其他代码我们会上传到qq群空间,请见文章底部)
UIImage *image;
image=[info valueForKey:UIImagePickerControllerOriginalImage];
imageData = UIImageJPEGRepresentation(image,1);
float length = [imageData length]/1024;
NSLog(@"image length===%f",length);
在用第一个方式转一个清晰度较低的图片
imageData1 = UIImageJPEGRepresentation(image,0.1);
float length1 = [imageData1 length]/1024;
NSLog(@"image length1===%f",length1);
再用第二种方法转换一张
imageData2 = UIImagePNGRepresentation(image);
float length2 = [imageData2 length]/1024;
NSLog(@"image length===%f",length2);
我们通过执行代码 会发现
TestImageToData[1317:494705] image length===297.000000
TestImageToData[1317:494705] image length1===34.000000
TestImageToData[1317:494705] image length===190.000000
同一张图片 通过三种方式转换后 大小差别比较打
第一种方式 高质量图片297Kb 低质量图片34Kb
第二种方式出来的190Kb
好了 我们先介绍到这里
大家有兴趣可以下载demo查看
苹果开发群 :414319235 欢迎加入
demo上传到qq群 共享 大家需要可以去下载
【602271TestImageToData.zip】