iOS开发之image图片压缩及压缩成指定大小的两种方法
///压缩图片
+(NSData*)imageCompressToData:(UIImage*)image{
NSData*data=UIImageJPEGRepresentation(image,1.0);
if(data.length>300*1024){
if(data.length>1024*1024){//1M以及以上
data=UIImageJPEGRepresentation(image,0.1);
}elseif(data.length>512*1024){//0.5M-1M
data=UIImageJPEGRepresentation(image,0.5);
}elseif(data.length>300*1024){//0.25M-0.5M
data=UIImageJPEGRepresentation(image,0.9);
}
}
returndata;
}
ps:下面看下iOS中图片压缩成指定的大小
iOS中,我们为了节省内存,需要对图片来进行处理,来优化程序,提高程序的效率,下面是一个根据自己的要求来重新设置图片的大小:
一、压缩图片有两种方式,第一种是压缩图片的大小,重新生成图片的尺寸:如下
/**
*压缩图片到指定尺寸大小
*
*@paramimage原始图片
*@paramsize目标大小
*
*@return生成图片
*/
-(UIImage*)compressOriginalImage:(UIImage*)imagetoSize:(CGSize)size{
UIImage*resultImage=image;
UIGraphicsBeginImageContext(size);
[resultImagedrawInRect:CGRectMake(00,0,size.width,size.height)];
UIGraphicsEndImageContext();
returnimage;
}
二、第二种是修改图片的文件大小:如下
/**
*压缩图片到指定文件大小
*
*@paramimage目标图片
*@paramsize目标大小(最大值)
*
*@return返回的图片文件
*/
-(NSData*)compressOriginalImage:(UIImage*)imagetoMaxDataSizeKBytes:(CGFloat)size{
NSData*data=UIImageJPEGRepresentation(image,1.0);
CGFloatdataKBytes=data.length/1000.0;
CGFloatmaxQuality=0.9f;
CGFloatlastData=dataKBytes;
while(dataKBytes>size&&maxQuality>0.01f){
maxQuality=maxQuality-0.01f;
data=UIImageJPEGRepresentation(image,maxQuality);
dataKBytes=data.length/1000.0;
if(lastData==dataKBytes){
break;
}else{
lastData=dataKBytes;
}
}
returndata;
}
这是压缩图片的两种方式。
总结
以上所述是小编给大家介绍的iOS开发之image图片压缩及压缩成指定大小的两种方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。