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;
    
    
    }
    如上两种方法,即可简单实现压缩图片的功能,更深入的话就要图像编码之类的知识了估计,记录下以备忘

     

  • 相关阅读:
    ALV控件的简单案例之二:自定义ALV…
    上传文件时显示选择窗口
    RZ10设置ECC系统参数
    下载时,弹出下载地址选择窗口
    使用程序实现多client切换
    ALV控制某列的颜色
    WebService 创建  发布 调用整个流…
    出口增强 以EXIT_SAPLSZAR_001为例
    使用SAP memory 调用标…
    FunctionModel调用ALV时,自定义工…
  • 原文地址:https://www.cnblogs.com/LynnAIQ/p/6400307.html
Copyright © 2011-2022 走看看