iOS中图片压缩成指定的大小

来源:互联网 发布:淘宝怎样好评返现 编辑:程序博客网 时间:2024/05/16 03:59

iOS中,我们为了节省内存,需要对图片来进行处理,来优化程序,提高程序的效率,下面是一个根据自己的要求来重新设置图片的大小:

一、压缩图片有两种方式,第一种是压缩图片的大小,重新生成图片的尺寸:如下

/** *  压缩图片到指定尺寸大小 * *  @param image 原始图片 *  @param size  目标大小 * *  @return 生成图片 */-(UIImage *)compressOriginalImage:(UIImage *)image toSize:(CGSize)size{    UIImage * resultImage = image;    UIGraphicsBeginImageContext(size);    [resultImage drawInRect:CGRectMake(00, 0, size.width, size.height)];    UIGraphicsEndImageContext();    return image;}

二、第二种是修改图片的文件大小:如下

/** *  压缩图片到指定文件大小 * *  @param image 目标图片 *  @param size  目标大小(最大值) * *  @return 返回的图片文件 */- (NSData *)compressOriginalImage:(UIImage *)image toMaxDataSizeKBytes:(CGFloat)size{    NSData * data = UIImageJPEGRepresentation(image, 1.0);    CGFloat dataKBytes = data.length/1000.0;    CGFloat maxQuality = 0.9f;    CGFloat lastData = 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;        }    }    return data;}

这是压缩图片的两种方式。




0 0