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】