写在前面:

        Pngcrush是一个优化的PNG(便携式网络图形)文件。它可以运行在MSDOS窗口中一个命令行,或从UNIX或LINUX命令行。其主要目的是为了
减少PNG IDAT数据流的大小,通过尝试不同的压缩级别和PNG筛选方法。它也可以用来去除不必要的辅助块,或者添加若干包括GAMA TRNS。
        在iOS软件开发中,为了减少图片在应用中占的内存,以及减少用户在使用过程中产生过多的流量。给图片瘦身是一个优秀的程序必须考虑的问题。
 
准备工作:
1.下载pngcrush代码
gitHub下载地址:https://github.com/Kjuly/pngcrush
      
2.解压文件,并在pngcrush-dev文件中切创建workspace_in、workspace_out文件夹
             
 
命令行用法:
1.把你所有的PNG文件导入到“workspace_in”文件夹;
2.命令行运行batch_script.sh重新压缩png文件:
$./ batch_script.sh
3.所有重新压缩png文件将被输出到“workspace_out”文件夹;
4在“workspace_out”文件夹中的文件复制到你想要的地方;
5在“workspace_in”&“workspace_out的文件夹中的所有文件。
 
许可证
Pngcrush是开源的,可以使用,修改和分发由任何人无需支付费用。许可证,嵌入在文件pngcrush.c,是等价的,但不完全相同的libpng文件中发现的libpng许可证png.h. 除了pngcrush库源也在这里任何人授予由Kjuly。
 
声明:
pngcrush作者格伦·兰德斯·皮尔逊(glennrp@users.sf.net)
此回购维持由Kjuly(dev@kjuly.com)。基于pngcrush项目,补充。batch_script.sh,做批处理作业更容易。
 
备注:
下面笔者推荐一个网址,让大家可以更多了解在iOS开发过程中图片压缩的工具:

http://my.oschina.net/shede333/blog/373780

使用pngcrush压缩png图片的更多相关文章

  1. php分10个不同等级压缩优化图片

    今天找到一个php写的压缩图片程序,可以分10个等级(0-9)来压缩,0等级时压缩比率不是很大,图片不会失真:随着压缩等级不断增大,图片会变得越来越不清晰,通常压缩后图片大小可以减少到原来的50%,压 ...

  2. java多图片上传--前端实现预览--图片压缩 、图片缩放,区域裁剪,水印,旋转,保持比例。

    java多图片上传--前端实现预览 前端代码: https://pan.baidu.com/s/1cqKbmjBSXOhFX4HR1XGkyQ 解压后: java后台: <!--文件上传--&g ...

  3. php如何优化压缩的图片

    php程序开发中经常涉及到生成缩略图,利用php生成缩略图这个过程本身没难度,但是你知道php能够优化调节生成的缩略图的质量吗?也就是说php能够控制生成缩略图的清晰度以及生成后的缩略图的体积.下面我 ...

  4. php分10个不同等级压缩优化图片(PNG)

    今天找到一个php写的压缩图片程序,可以分10个等级(0-9)来压缩,0等级时压缩比率不是很大,图片不会失真:随着压缩等级不断增大,图片会变得越来越不清晰,通常压缩后图片大小可以减少到原来的50%,压 ...

  5. 移动端 H5 拍照 从手机选择图片,移动端预览,图片压缩,图片预览,再上传服务器

    前言:最近公司的项目在做全网营销,要做非微信浏览器的wap 站 的改版,其中涉及到的一点技术就是采用H5 选择手机相册中的图片,或者拍照,再将获取的图片进行压缩之后上传. 这个功能模块主要有这5点比较 ...

  6. Java实现图片压缩代码,图片大小转换

    在很多项目中我们会把上传的图片做处理,比较图片上传过多对服务器的容量和带宽有很多的浪费,如果不是必须的高清图片,我们可以通过代码来做压缩.在我的项目中我们压缩图片的目的是让web页面打开的速度很快,并 ...

  7. android 拍照或者图库选择 压缩后 图片 上传

    通过拍照或者从相册里选择图片通过压缩并上传时很多应用的常用功能,记录一下实现过程 一:创建个临时文件夹用于保存压缩后需要上传的图片 /** * path:存放图片目录路径 */ private Str ...

  8. Python,PIL压缩裁剪图片

    自己写了用来压缩 DC 照片的,批量处理整目录文件,非常方便.需要安装 PIL #!/usr/bin/env python import Image import os import os.path ...

  9. js 前端图片压缩+ios图片角度旋转

    step1:读取选择的图片,并转为base64: function ImgToBase64 (e, fn) { // 图片方向角 //fn为传入的方法函数,在图片操作完成之后执行 var Orient ...

随机推荐

  1. 社区发现(Community Detection)算法

    作者: peghoty 出处: http://blog.csdn.net/peghoty/article/details/9286905 社区发现(Community Detection)算法用来发现 ...

  2. Netty构建游戏服务器(二)--Hello World

    一,准备工作 1,netty-all-4.1.5.Final.jar(官网下载) 2,eclipse 二,步骤概要 1,服务器开发 (1),创建Server类 该类是程序的主入口,有main方法,服务 ...

  3. GRYZY- #10. 财富

    财富(treasure) Time Limit:1000ms Memory Limit:128MB 题目描述 LYK有n个小伙伴.每个小伙伴有一个身高hi. 这个游戏是这样的,LYK生活的环境是以身高 ...

  4. nginx原配置

    #原配置 server { listen ; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main ...

  5. Java到底是值传递还是引用传递

    什么是按值传递,什么是按引用传递 按值调用(call by value) : 在参数传递过程中,形参和实参占用了两个完全不同的内存空间.形参所存储的内容是实参存储内容的一份拷贝. 按引用调用:在参数传 ...

  6. java 基础 5 String StringBuffer StringBuilder

    String是不可变的,原因 1是可以缓存hash值,因为String的hash值经常被使用,例如String用作HashMap等.不可变特性  使得hash值不变,因此只需要进行一次计算: 2Str ...

  7. Windows下使用Nexus搭建Maven私服(使用)

    注意: 1.从3.0版本的Nexus开始,已经不再缓存https://repo1.maven.org/maven2/的包,所以当安装好之后,在界面上不会有任何的包可以搜索到,但是功能是一切正常的,只有 ...

  8. js中有包装类,java中也有包装类

    new Number() vs Number() What is the difference between new Number() and Number()? I get that new Nu ...

  9. PHP中文分词扩展 SCWS

    1.scws简单介绍 SCWS 是 Simple Chinese Word Segmentation 的首字母缩写(即:简易中文分词系统). 这是一套基于词频词典的机械式中文分词引擎,它能将一整段的中 ...

  10. webpack2 详解

    1.安装 npm install webpack -g npm install webpack -save-dev 2.编辑配置文件 // 引入 path var path=require('path ...