zoukankan      html  css  js  c++  java
  • iOS 压缩图片

          开发中经常会碰到从手机相册中选择图片的需求,选择图片这个过程是一个消耗性能的过程,取决于手机图片的大小,如果手机像素非常高,图片的尺寸非常大,这个时候就会变得很消耗性能,比如一张图片5兆,这个时候选择后加载的时候就会有些卡顿,内存开始大幅升高,仔细想想也没有这种必要去加载这么大的图片,所以总结了两种处理方法,提供参考

    1:对图片进行压缩,iOS的API中提供了函数进行压缩,代码如下:

    NSData *imageData = UIImageJPEGRepresentation(image, 0.5);
    
    这个返回的是二进制的data值,可以通过打印知道大小确实减少了好多,通过此方法确实能优化性能,需要注意的是这个0.5,并不是说压缩到之前图片的二分之一 
    ,应该是个系数之类的数值,这样的话图片压缩之后性能会好很多,但是不建议这个,因为解压缩的时候很耗费性能建议使用第二种方法
    
    2:根据image从新绘制一张新的图片出来,第一种的方法多多少少会有些失真,第二种方法是根据图片从新绘制一张出来,不会失真,只是改变图片的大小,比如之前是5000 * 5000的分辨率,
    这个时候你压缩后可能就只有500 * 500 ,不会失真,只会改变大小,建议使用,方法如下:
    
    
    - (UIimage *)imageWithImage:(UIImage*)image
              scaledToSize:(CGSize)newSize;
    {
        UIGraphicsBeginImageContext(newSize);
        [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
        UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return newImage;
    
    
    }
    如上两种方法,即可简单实现压缩图片的功能,更深入的话就要图像编码之类的知识了估计,记录下以备忘

     

  • 相关阅读:
    [CF864F]Cities Excursions
    [AGC012F]Prefix Median
    [TC-FindingFriends]Finding Friends
    [TC-HouseProtection]House Protection
    [CTSC2018]假面
    [CF877F]Ann and Books
    [CF509F]Progress Monitoring
    [CF735E/736C]Ostap and Tree
    CF611H New Year and Forgotten Tree
    CF538H Summer Dichotomy
  • 原文地址:https://www.cnblogs.com/LynnAIQ/p/6400307.html
Copyright © 2011-2022 走看看