iOS中图片压缩

1.对图片进行压缩,利用iOS的API提供的函数进行压缩:

NSData *imageData = UIImageJPEGRepresentation(image,0.5);

返回的是二进制的data值,可以通过打印知道大小确实减少了好多,通过此方法确实能优化性能,需要注意的是这个0.5,并不是说压缩到之前图片的二分之一 ,应该是个系数之类的数值,这样的话图片压缩之后性能会好很多,但是不建议这个,因为解压缩的时候很耗费性能,而且压缩后的图片会有些失真。

2.根据image重新绘制一张新的图片出来:

- (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size{
    // 创建一个bitmap的context
    // 并把它设置成为当前正在使用的context
    UIGraphicsBeginImageContext(size);
    // 绘制改变大小的图片
    [img drawInRect:CGRectMake(0,0, size.width, size.height)];
    // 从当前context中创建一个改变大小后的图片
    UIImage* scaledImage =UIGraphicsGetImageFromCurrentImageContext();
    // 使当前的context出堆栈
    UIGraphicsEndImageContext();
    //返回新的改变大小后的图片
    return scaledImage;
}

根据大小来对图片进行压缩,不会造成失真。

你可能感兴趣的:(iOS中图片压缩)