美文网首页
具体实现返回NSData对象

具体实现返回NSData对象

作者: 羊妞麻麻 | 来源:发表于2017-08-08 13:28 被阅读9次

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

- (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;
}

相关文章

网友评论

      本文标题:具体实现返回NSData对象

      本文链接:https://www.haomeiwen.com/subject/ktrtrxtx.html