您好,欢迎来到花图问答。
搜索
您的当前位置:首页具体实现返回NSData对象

具体实现返回NSData对象

来源:花图问答

图片质量压缩到某一范围内,如果后面用到多,可以抽成分类或者工具类,这里压缩递减比二分的运行时间长,二分可以限制下限。

- (NSData *)compressImage:(UIImage *)image toMaxFileSize:(NSUInteger)maxFileSize
{
    CGFloat min = 0;
    CGFloat max = 1;
    CGFloat mid = 0.5;
    NSData *imageData = UIImageJPEGRepresentation(image, mid);
    while (min < max) {
        mid = (max + min) / 2;
        imageData = UIImageJPEGRepresentation(image, mid);
        if (max < 0.05 || min > 0.95) { //避免造成死循环。
            break;
        }
        if ([imageData length] > maxFileSize) {
            max = mid;
        } else {
            if ([imageData length] >= 120 * 1024) {
                break;
            } else {
                min = mid;
            }
        }
    }
    return imageData;
}

Copyright © 2019- huatuowenda.com 版权所有 湘ICP备2023022495号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务