利用UIImageJPEGRepresentation与UIGraphicsBeginImageContext进行图片压缩的简单比较

NSData *imageData = UIImageJPEGRepresentation(self.uploadImage , 0.75);

//图片按0.75的质量压缩-》转换为NSData

NSString *file_name = [TimeUtil getDateStringWithFormat:@"yyyy-MM-dd-HH-mm-ss"];

//以事件为图片名字

NSString *upload_name =[NSString stringWithFormat:@"%@.jpg",file_name ];

//上传的图片名字

[request setData:imageData

withFileName:upload_name

andContentType:@"image/jpeg" 
          forKey:@"upload_file"];

UIImageJPEGRepresentation 函数需要两个参数:图片的引用和压缩系数.
而UIImagePNGRepresentation只需要图片引用作为参数.通过在实际使用过程中,

比较发 现:

UIImagePNGRepresentation(UIImage* image) 要比UIImageJPEGRepresentation(UIImage* image, 1.0) 返回的图片数据量大很多.

譬如,同样是读取摄像头拍摄的同样景色的照片

UIImagePNGRepresentation()返回的数据量大小为199K

而 UIImageJPEGRepresentation(UIImage* image, 1.0)返回的数据量大小只为140KB

比前者少了50多KB.

如果对图片的清晰度要求不高,还可以通过设置 UIImageJPEGRepresentation函数的第二个参数,大幅度降低图片数据量.

譬如,刚才拍摄的图片, 通过调用UIImageJPEGRepresentation(UIImage* image, 1.0)读取数据时,返回的数据大小为140KB

但更改压缩系数后,通过调用UIImageJPEGRepresentation(UIImage* image, 0.5)读取数据时,返回的数据大小只有11KB多,大大压缩了图片的数据量

而且从视角角度看,图片的质量并没有明显的降低.因此,在读取图片数据内容时,建议优先使用UIImageJPEGRepresentation,并可 根据自己的实际使用场景,设置压缩系数,进一步降低图片数据量大小

时间: 12-08

利用UIImageJPEGRepresentation与UIGraphicsBeginImageContext进行图片压缩的简单比较的相关文章

iOS 图片压缩

iOS的图片压缩,目前我在用的有两种: 一.在内存中压缩 需要消耗内存,如果图片较多,可能会造成crash //压缩图片质量   +(UIImage *)reduceImage:(UIImage *)image percent:(float)percent   {       NSData *imageData = UIImageJPEGRepresentation(image, percent);       UIImage *newImage = [UIImage imageWithData

iOS开发探索-图片压缩处理

介绍: 压: 指文件体积变小,但是像素数不变,长宽尺寸不变,那么质量可能下降.缩: 指文件的尺寸变小,也就是像素数减少,而长宽尺寸变小,文件体积同样会减小. 应用: 在实际开发中,我们经常会对图片进行处理,满足开发需求,以下介绍三种图片压缩处理: 1.压缩图片质量(图片体积减小,像素不变) 两种读取图片数据的简单方法:(1).UIImageJPEGRepresentation函数需要两个参数:图片的引用和压缩系数,压缩体积不是随压缩系数比例变化的.(2).UIImagePNGRepresenta

图片压缩后长度和宽度 及像素坐标

图片压缩后长度和宽度 及像素坐标 CGFloat    scaleFloat = 0.6;+ (UIImage *) scaleImage: (UIImage *)image scaleFactor:(float)scaleFloat{    CGSize size = CGSizeMake(image.size.width * scaleBy, image.size.height * scaleBy); UIGraphicsBeginImageContext(size);    CGConte

IOS图片压缩

iPhone拍出来的照片一般大小在1-10M,我们在上传照片时,不可能上传如此大的图片到服务器,一般我们会对照片进行压缩. 常用的做法是,使用这个函数对图片压缩 UIImageJPEGRepresentation(UIImage * __nonnull image, CGFloat compressionQuality); 但这个函数有一个临界值,不能对图片无限制压缩,一般到当压缩比传入0.1已达到临界值了.这时如果我想把5M的图片压缩到50K是行不通的. 如果图太大,我们要求压缩的比例太大就不

CxImager图片压缩助手v1.1免费版[下载]

CxImager图片压缩助手v1.1运行环境:WinXP/2003/Vista/Win2008/Win7软件版本:1.1软件大小:1.37M软件语言:简体中文软件类型:系统工具授权方式:免费版推荐星级:★★★★★ 修改时间: 2015年10月25日 12:38:28 MD5: 634F21AB6109A59F3A1DCC5AFA2F7F5A SHA1: 1AAA0E18AB20650DB3B4E846EA3F6FB7FDEEA7C0 CRC32: 00F6A62B 下载地址: 软件简介:   C

每日总结 - 图片压缩

利用android系统压缩方式进行图片压缩,代码: 1 private String path = "/sdcard/img.jpg"; 2 File f = new File(path); 3 Bitmap bm = PictureUtil.getSmallBitmap(this,path); 4 FileOutputStream fos; 5 try { 6 fos = new FileOutputStream(new File("/sdcard/", &quo

判断邮箱格式和图片压缩

1.判断邮箱格式 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex [email protected]"[A-Z0-9a-z._%+-][email protected][A-Za- z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",e

图片压缩(pc端和移动端都适用)

最近在做移动端遇到了一个问题就是: 手机拍照后,图片过大如果上传到服务器务必会浪费带宽,最重要的是流量啊 别慌,好事儿来了,务必就会有人去研究研究图片的压缩: 鄙人结合前人的经验,结合自己实战,总结出一个方法供大家参考. /** * 图片压缩,默认同比例压缩 * @param {Object} path * pc端传入的路径可以为相对路径,但是在移动端上必须传入的路径是照相图片储存的绝对路径 * @param {Object} obj * obj 对象 有 width, height, qual

功能这么齐全的图片压缩类,还有谁?

效果图: 压缩日志 com.pengkv.moon I/--->: 原尺寸:1215*1080 com.pengkv.moon I/--->: 最终压缩比例:3倍/新尺寸:405*360 工具特点 * 可以解析单张图片 * 可以解析多张图片 * 处理了压缩过程中OOM * 处理了部分手机照片旋转问题 * 压缩后存储在缓存中,并可以清理 * 压缩后返回缓存路径,方便上传 * 可以从缓存路径读取出Bitmap,方便展示 * 封装在2个类里,方便调用 使用方法 ImageCompressUtil.c

java 图片压缩变色问题

java图片压缩,有时由于图片自身的原因,如透明的PNG图.改alpha通道或四色图等. 压缩完了,会出现图片变色的情况. 如: 原图 压缩完: 尝试了很多方法,如JDK原生的方式及第三方组件java-image-scaling或thumbnailator都不解决问题. 后来采用阿里的SimpleImage解决.记录一下 SimpleImage github地址:https://github.com/alibaba/simpleimage依赖jar:commons-io-2.4.jarcommo