iOS 图片转NSData

iOS开发中 UIImage可能经常需要转为NSData 上传 传递等等


有两个比较常用的方法

UIImageJPEGRepresentation

UIImagePNGRepresentation

第一个方法有两个参数

UIImageJPEGRepresentation(UIImage * __nonnull image, CGFloat compressionQuality);


第一个参数就是图片,第二个参数 就是需要设置的清晰度,值介于0到1之前,值越大却清晰,占用空间就越大,反之,值越小清晰度就越低,占用空间也就越小


我们直接上代码

吧两种方式做一个比较

我们创建一个项目,调用系统的相册或者照相机 取一张图片  

先用第一种方式转换一个清晰度较高的图片(此处我们贴出重要代码,其他代码我们会上传到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






你可能感兴趣的:(图片,NSData,uiimage)