美文网首页iOS图片
iOS开发图片压缩的两种方式2019-01-18

iOS开发图片压缩的两种方式2019-01-18

作者: 噜噜噜噜噜噜噜噜 | 来源:发表于2019-01-18 10:01 被阅读0次

工作中遇到需要将图片压缩之后上传的需求。经过多方查询资料,目前总结出来两种方式总结一下备用。

1、第一种方法,基本上是无损压缩(肉眼基本看不出差别,精度基本不变)

UIImageJPEGRepresentation(image, compression)
这个方法可以将iPhone拍摄的照片压缩到几百Kb的极限值,到极限值之后不管compression这个参数多小,该函数返回的数据大小都不会再改变。也就是说这个方法的压缩是有最小值的,得到的是jpg格式。
另外有一个方法UIImagePNGRepresentation(<#UIImage * _Nonnull image#>)这个方法得到的数据会比之前那个方法得到的数据占用空间更大。

2、第二种方法,基本上就是将image重新设定像素大小达到压缩的目的 (改变尺寸)

为了达到压缩的目的,这种方法是有损的,就是会降低图片质量。

//压缩图片(将图片重画)
- (UIImage*)imageWithImageSimple:(UIImage*)image scaledToSize:(CGSize)newSize {
    //首先根据image的size的长宽比和newSize进行设置新图片的大小(为了达到等比例缩放不变形的目的)
    CGFloat wTmp;
    CGFloat hTmp;
    CGSize imgSize = image.size;
    if (imgSize.width > imgSize.height) {
        wTmp=newSize.width;
        hTmp = imgSize.height * wTmp / imgSize.width;
    } else {
        hTmp=newSize.height;
        wTmp = imgSize.width * hTmp / imgSize.height;
    }

    // Create a graphics image context
    UIGraphicsBeginImageContext(CGSizeMake(wTmp, hTmp));

    // Tell the old image to draw in this new context, with the desired
    // new size
    [image drawInRect:CGRectMake(0,0,wTmp,hTmp)];

    // Get the new image from the context
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();

    // End the context
    UIGraphicsEndImageContext();

    // Return the new image.
    return newImage;
}

这种方法的到的图片,newSize越小质量越差,但是得到的图片占用内存越小。设置多大的newSize自己斟酌决定。

3、温馨提示

综合一下自己平常在开发中常用的就是,先使用第一种方法保持精度不变,compression选择0.6或者0.7进行第一次压缩,然后再用第二种方法进行尺寸压缩,得到的就是我们最终想要的图片。

相关文章

  • iOS 图片压缩方法

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

  • iOS开发图片压缩的两种方式2019-01-18

    工作中遇到需要将图片压缩之后上传的需求。经过多方查询资料,目前总结出来两种方式总结一下备用。 1、第一种方法,基本...

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

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

  • Webp压缩实践 2022-11-10 周四

    简介 在iOS原生的图片压缩算法中,系统提供了PNG和JPEG两种压缩方式(NSData),用来进行网络传输。PN...

  • IOS 中UIImage用代码压缩

    IOS中UIImage的数据量压缩有两种方式,一种是图片尺寸不变,降低图片分辨率,代码方法为: //1.0为压缩系...

  • iOS-图片解压缩相关

    SDWebimage中对图片的解压缩 谈谈 iOS 中图片的解压缩 iOS 开发:绘制像素到屏幕 探讨iOS 中图...

  • iOS 图片压缩方法

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

  • iOS压缩图片的方法

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

  • iOS 图片压缩

    压缩图片有两种方式 (1)压缩图片尺寸(Size) (2)压缩图片质量(Quality) 1、第一种是压缩图片的尺...

  • iOS开发之——图片压缩

    前言:最近做的一个项目需要上传图片到服务器,根据需求来设计压缩图片 一:iOS读取图片数据的方法 比较两种方式不同...

网友评论

    本文标题:iOS开发图片压缩的两种方式2019-01-18

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