iOS 图片转NSData

本文介绍了在iOS开发中将UIImage转换为NSData的方法,包括高质量和低质量的转换方式,用于上传和传递图片数据。通过对比两种转换方式产生的文件大小,提供了实际应用中的参考,并提供了相关Demo的下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值