iOS中常见的图片压缩方法

896 阅读1分钟

1.对图片进行压缩,iOS自带的API提供了函数对图片进行压缩

//两种方法将图片按不同的格式压缩
NSData *imageData = UIImageJPEGRepresentation(info[UIImagePickerControllerOriginalImage], 0.5);
NSData *imageData = UIImagePNGRepresentation(info[UIImagePickerControllerOriginalImage]);

2.对图片进行重绘

//第一种方法压缩过度会使得图片失真,这种方式不会使图片失真,是重新绘制一张图片来。例如:原图1000*1000,新绘制的图片可能是100*100

- (UIImage *)imageWithImage:(UIImage *)image andScaledToSize:(CGSize)newSize
{
    //获取当前的绘画环境
    UIGraphicsBeginImageContext(newSize);
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    //结束当前绘画环境
    UIGraphicsEndImageContext();
    return newImage;
}