美文网首页iOS知识收藏
iOS中两种压缩图片的方法

iOS中两种压缩图片的方法

作者: hello9527 | 来源:发表于2016-06-05 22:45 被阅读14437次
    这是官方的解释:

    UIImagePNGRepresentation(UIImage*__nonnullimage);// return image as PNG. May return nil if image has no CGImageRef or invalid bitmap format]

    UIImageJPEGRepresentation(UIImage*__nonnullimage,CGFloatcompressionQuality);//return image as JPEG. May return nil if image has no CGImageRef or invalid bitmap format. compression is 0(most)..1(least)

    UIImageJPEGRepresentation方法需要两个参数:图片的引用和压缩系数,而UIImagePNGRepresentation方法仅仅需要一个参数:图片的引用。UIImagePNGRepresentation方法在耗时上比UIImageJPEGRepresentation耗时,图片数据量更大,使用 UIImagePNGRepresentation读取照片数据的时候有可能会照成卡顿。两个方法返回的数据都是NSData类型。

    例如:

    同样是读取摄像头拍摄的图片,UIImagePNGRepresentation(UIImage *image)返回的数据量大小为199K,而UIImageJPEGRepresentation(UIImage *image,1.0)返回的数据量只有140K,比前者少了50多K;而且如果对图片的质量要求不那么高的话,还可以通过设置压缩系数进一步减少数据量,降低压缩系数后UIImageJPEGRepresentation(UIImage *image, 0.5),返回的数据大小只有11K,大大压缩了图片数据量,而且从视图角度看,图片的质量并没有明显降低。所以,在读区图片数据内容的时候,建议优先使用方法UIImageJPEGRepresentation(UIImage *image, CGFloatcompressionQuality)

    代码:
    NSData *data = nil; if(!UIImagePNGRepresentation(image)) { data =UIImageJPEGRepresentation(image,0.1); }else{ data =UIImagePNGRepresentation(image); }

    相关文章

      网友评论

      • ChardXu:不用判断直接 jpeg压缩行不行?
      • ChardXu:你这个代码只是压缩了jpeg图片呀,png不能压缩吗?

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

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