美文网首页
iOS压缩图片的方法

iOS压缩图片的方法

作者: Rumbles | 来源:发表于2019-01-21 15:34 被阅读10次

iOS中两种压缩图片的方法
UIImageJPEGRepresentation. UIImagePNGRepresentation

JPEG图片只支持白底且保存时是有损压缩,占用空间较小,PNG可以支持透明背景且使用无损压缩算法,但由于压缩比高,所以占用空间跟JPEG没有太大差别

执行完之后会有一个最小值 即使系数为0.000001。所以需要改变图片的大小

#pragma mark - 压缩图片
- (NSData *)compressOriginalImage:(UIImage *)image toMaxDataSizeKBytes:(CGFloat)size
{
    UIImage *OriginalImage = image;
    
    // 执行这句代码之后会有一个范围 例如500m 会是 100m~500k
    NSData * data = UIImageJPEGRepresentation(image, 1.0);
    CGFloat dataKBytes = data.length/1000.0;
    CGFloat maxQuality = 0.9f;
    
    // 执行while循环 如果第一次压缩不会小雨100k 那么减小尺寸在重新开始压缩
    while (dataKBytes > size)
    {
        while (dataKBytes > size && maxQuality > 0.1f)
        {
            maxQuality = maxQuality - 0.1f;
            data = UIImageJPEGRepresentation(image, maxQuality);
            dataKBytes = data.length / 1000.0;
            if(dataKBytes <= size )
            {
                return data;
            }
        }
        OriginalImage =[self compressOriginalImage:OriginalImage toWidth:OriginalImage.size.width * 0.8];
        image = OriginalImage;
        data = UIImageJPEGRepresentation(image, 1.0);
        dataKBytes = data.length / 1000.0;
        maxQuality = 0.9f;
    }
    return data;
}

#pragma mark - 改变图片的大小
-(UIImage *)compressOriginalImage:(UIImage *)image toWidth:(CGFloat)targetWidth
{
    CGSize imageSize = image.size;
    CGFloat Originalwidth = imageSize.width;
    CGFloat Originalheight = imageSize.height;
    CGFloat targetHeight = Originalheight / Originalwidth * targetWidth;
    UIGraphicsBeginImageContext(CGSizeMake(targetWidth, targetHeight));
    [image drawInRect:CGRectMake(0,0,targetWidth,  targetHeight)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}

相关文章

  • iOS 图片压缩方法

    iOS 图片压缩方法 更多图片处理方法见图片组件 BBWebImage iOS 图片压缩方法 两种图片压缩方法 两...

  • iOS 图片压缩限制大小最优解

    iOS 图片压缩限制大小最优解 图片的两种压缩方法 1.1 压缩图片质量 1.2 压缩图片尺寸 压缩图片使图片文件...

  • 微信小程序图片压缩(OK版)

    小程序压缩图片,已验证OK! 一、wx.compressImage() 官方提供的图片压缩方法,亲测iOS有效,A...

  • iOS压缩图片的方法

    iOS中两种压缩图片的方法UIImageJPEGRepresentation. UIImagePNGReprese...

  • iOS图片压缩方法

    #define KCompressibilityFactor 1280.00 @implementationWeC...

  • iOS 图片压缩方法

    两种图片压缩方法 两种压缩图片的方法:压缩图片质量(Quality),压缩图片尺寸(Size)。 压缩图片质量 N...

  • iOS图片压缩方法

    iOS 图片压缩方法http://www.cnblogs.com/silence-cnblogs/p/634672...

  • iOS 图片压缩方法

    图片压缩可以通过两种方式实现,压缩图片质量和压缩图片尺寸。如果对图片清晰度有要求的,可以先压缩图片质量,在压缩图片...

  • iOS 图片压缩方法

    两种图片压缩方法 两种图片压缩方法:压缩图片质量(Quality),压缩图片尺寸(Size)。 压缩图片质量 通过...

  • iOS 图片压缩、滤镜、剪切、渲染等解析

    iOS 图片压缩、滤镜、剪切、渲染等解析 iOS 图片压缩、滤镜、剪切、渲染等解析

网友评论

      本文标题:iOS压缩图片的方法

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