写在前面:

        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. spark学习(六)Java版RDD基本的基本操作

    1.map算子 private static void map() { //创建SparkConf SparkConf conf = new SparkConf() .setAppName(" ...

  2. 聊聊WiFi Hacks:为何你的Karma攻击不好使了

    0.前言 三年前我发表了一篇文章<黑客有办法让你自动连上陌生WiFi>,介绍Karma攻击可以让你的无线设备自动连上黑客的WiFi.当时引起了还算比较热烈的讨论,关于WiFi安全,关于Ka ...

  3. 【LeetCode】Generate Parentheses 解题报告

    [题目] Given n pairs of parentheses, write a function to generate all combinations of well-formed pare ...

  4. Servlet的部署开发细节以及注意事项

    学习servlet最困难的我感觉还是配置,一開始是非常麻烦的.为了较好的学习,一開始还是以手动开发我认为比較好,可是真的有点把握给搞晕了,尤其是部署servlet方面非常麻烦,这里做一下简单的总结,前 ...

  5. win32收不到F10按键消息解决的方法

    在WM_KEYDOWN中处理F10(VK_F10)消息总是获取不到,后来用spy++监听窗体消息发现按下F10并没有WM_KEYDOWN消息产生,而是产生了WM_SYSKEYDOWN

  6. 实现多线程的方式Runnable

    package com.thread.runnable; /** * 实现多线程的方式有继承Thread类和实现Runnable接口两种方式 * 哪种方式更好呢?实现的方式由于继承的方式. * 原因: ...

  7. ScaleYViewPager

    https://github.com/eltld/ScaleYViewPager

  8. AML LCD debuged

    root@k101:/ # cat /sys/class/lcd/debug                                          Usage:     echo basi ...

  9. Eureka vs Zookeeper

    著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性).A(可用性)和P(分区容错性).由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡.在此Zookeeper保证 ...

  10. EF中 Code-First 方式的数据库迁移

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/code-first-migrations-with-entity-framework/ 系列目 ...