iOS压缩图片体积的方法

2016-09-05  本文已影响472人  AnthonyChen

前一段时间在做一个社交类APP时,需要有朋友圈的功能,所以需要对发布的图片进行压缩体积的操作,在google上找了一些方法,发现了 一些方法,最终,选择了系统原生的按比例压缩图片体积的方法,在保证图片不糊的情况下,可以将1、2M左右的图片压缩到200K(或更少)的体积。

方法如下:

/**

压缩图片至指定的体积

@param image 图片

@param maxLength 最大体积KB为单位

@return 压缩后的图片data数据

*/

+ (NSData*)compressImageQuality:(UIImage*)image toByte:(NSInteger)maxLength {

CGFloatcompression =1;

NSData*data =UIImageJPEGRepresentation(image, compression);

while(data.length> maxLength *1024&& compression >0) {

if(data.length>1024*1024*10) {

compression -=0.5;

}

elseif(data.length>1024*1024*5) {

compression -=0.4;

}

elseif(data.length>1024*1024*3) {

compression -=0.3;

}

elseif(data.length>1024*1024) {

compression -=0.25;

}

elseif(data.length> maxLength)

{

compression -=0.1;

}

data =UIImageJPEGRepresentation(image, compression);

}

NSLog(@"压缩后的data:%lu",data.length);

//UIImage *resultImage = [UIImage imageWithData:data];

returndata;

}

首先将图片转为NSData格式,然后判断data的长度,再根据长度进行一定比例的缩放,然后将缩放好的NSData文件上传至服务器

上一篇下一篇

猜你喜欢

热点阅读