博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios mac 对照片进行JPEG压缩
阅读量:6634 次
发布时间:2019-06-25

本文共 2040 字,大约阅读时间需要 6 分钟。

ios mac 对照片进行JPEG压缩

1. 在iOS上可以使用 API UIImageJPEGRepresentation 对照片数据进行JPEG压缩;

   我们知道iOS其实是MAC OS 的移植,那么MAC上肯定也有相应的JPEG压缩方法;

   在mac上了,找了NSImage的API没有发现直接的JPEG压缩方法;

   但是有NSBitmapImageRep,下面来测试一下,iOS和MAC上的JPEG压缩是否一致;

 

2. 首先用iOS 来压缩一张照片

UIImage *timg = [UIImage imageWithContentsOfFile:@"/Users/cc/Desktop/testiOS/IMG_0420.PNG"];    for (int i = 0; i <10; i++) {        NSData *cd = UIImageJPEGRepresentation(timg, (i+1)/10.0f);        [cd writeToFile:[NSString stringWithFormat:@"/Users/cc/Desktop/testiOS/com%.1f.jpeg",(i+1)/10.0f] atomically:YES];    }

得到结果:(压缩比0.1~1.0)

 

3. MAC API对照片进行JPEG压缩

//参数校验        if (argc!=4) {            printf("参数错误,请检测!\n");            printf("本程序主要是对图片进行JPEG压缩\n");            printf("示例:./JPEGCompress /xxpath/imgfile /xxpath/out.jpeg 0.4 \n");            printf("参数一:要压缩的图片;参数二:输出路径;参数三:压缩比0.1~1.0之间\n");                        return -1000;        }            NSString *inPath = [NSString stringWithCString:argv[1] encoding:NSUTF8StringEncoding];        NSString *outPath = [NSString stringWithCString:argv[2] encoding:NSUTF8StringEncoding];        float compress =  [[NSString stringWithCString:argv[3] encoding:NSUTF8StringEncoding] floatValue];                NSImage *simg = [[NSImage alloc]initWithContentsOfFile:inPath];        NSData *imgDt = [simg TIFFRepresentation];        NSBitmapImageRep *imageRep = [NSBitmapImageRep imageRepWithData:imgDt];        NSDictionary *imageProps = [NSDictionary dictionaryWithObject:[NSNumber numberWithFloat:compress] forKey:NSImageCompressionFactor];        imgDt = [imageRep representationUsingType:NSJPEGFileType properties:imageProps];                int ret = [imgDt writeToFile:outPath atomically:YES];        if (ret>0) {            printf("in: %s\nout: %s\ncompress: %s\nSUCCESS\n",argv[1],argv[2],argv[3]);        }else        {            printf("FAILURE!\n");        }        return ret;

得到结果:压缩比(0.1~1.0)

 

4. 通过上面的结果,可以看出,同样的压缩比,压缩出来的照片大小是一样的;

   但是我在比较上面相同大小文件的MD5时发现是不一样的;

   所以理论上MAC和iOS上的JPEG压缩是一致的,但并不是完全一致!

 

转载于:https://www.cnblogs.com/cocoajin/p/6755430.html

你可能感兴趣的文章
使用Vue.Js结合Jquery Ajax加载数据的两种方式
查看>>
优化IIS7.5支持10万个同时请求的配置方法_win服务器
查看>>
mysql中自连接查询的妙用:推荐人统计
查看>>
c语言代码缩进和空白
查看>>
我学安卓——运行时hook之onClickListener
查看>>
ios面试题1
查看>>
Snort***检测系统安装配置
查看>>
Linux优化之IO子系统监控与调优
查看>>
Install Toad for Oracle 10.6 on Winows 7 X64
查看>>
发福利喽!学Spark课程送Spark技术峰会的门票........
查看>>
Ubuntu忘记登录密码的解决办法
查看>>
Oracle数据库培训-PLSQL编程
查看>>
突破虚拟化极限,自由畅翔云端
查看>>
F5和VMware-共同交付软件定义的数据中心
查看>>
Java并发编程的艺术
查看>>
批量分发ssh公钥证书
查看>>
iOS encrypt Md5, Sha1,Base64
查看>>
git 常用命令
查看>>
Android系统启动流程(四)Launcher启动过程与系统启动流程
查看>>
jquery增,删,改一个html标签的class名字
查看>>