使用pngquant压缩png图片

说到png图片压缩,可能很多人知道TinyPNG这个网站。但PS插件要钱(虽然有破解的),Developer API要连到他服务器去,不提网络传输速度,Key也是有每月限制的。

但是貌似tinyPNG是使用了来自于 pngquant 的技术,至少在 http://pngquant.org/ 中是如此声称的:TinyPNG and Kraken.io — on-line interfaces for pngquant。如果真是这样,我很想对TinyPNG说呵呵。后者是开源的,连首页中提供的GUI工具也都是开源的。并且TinyPNG在首页的原理说明里面,一次都没提到pngquant

我取了tinyPNG的首页上的示例图用pngquant命令行跑了一下,压缩率和显示效果差不多。

pngquant首页上提供的工具中,Pngyu(http://nukesaq88.github.io/Pngyu/)是跨平台并且开源的,个人觉得已经相当好用了,直接把文件夹往里面拽就能递归处理,支持各种形式的生成方式(改名、覆盖、存储到其他目录等),压缩结束给出压缩比,并且还支持预览。

但我还是会希望能够通过脚本来处理,一方面可定制性更强,一方面更方便整合到整个自动化的流程链中。于是我又拿出了python试图写点什么,谁知道……

pngquant的命令行方式略坑……help中的参数说明和实际效果不一致,已经发现的问题有

1. --force 参数无效,只要输出文件存在,就会报错,无视这个本用来指定覆写的参数

2. --skip-if-larger 参数不正常,有时候生成文件明明比较小,也会被skip掉……

不过好在python大法好,这些问题虽然命令行本身不能处理,但python可以在上层处理掉,下面就是目前实际使用的递归处理某文件夹png的脚本:

时间: 2024-10-10 05:31:39

使用pngquant压缩png图片的相关文章

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

今天找到一个php写的压缩图片程序,可以分10个等级(0-9)来压缩,0等级时压缩比率不是很大,图片不会失真:随着压缩等级不断增大,图片会变得越来越不清晰,通常压缩后图片大小可以减少到原来的50%,压缩比还是挺大的. 如下是php压缩图片程序 <?php Header("Content-type: image/PNG");/*告诉IE浏览器你做的程序是张图片*/$image = @imagecreatefrompng ("banner.png"); image

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

今天找到一个php写的压缩图片程序,可以分10个等级(0-9)来压缩,0等级时压缩比率不是很大,图片不会失真:随着压缩等级不断增大,图片会变得越来越不清晰,通常压缩后图片大小可以减少到原来的50%,压缩比还是挺大的. 如下是php压缩图片程序 <?php Header("Content-type: image/PNG");/*告诉IE浏览器你做的程序是张图片*/$image = @imagecreatefrompng ("banner.png"); image

Golang压缩Jpeg图片和PNG图片

博主一直在维护一个导出PDF的服务,但是这个服务导出的PDF文件是真的巨大,动辄就上百MB.这里面主要是图片占据了大多数体积,所以考虑在导出前压缩一下图片. Jpeg的图片压缩是很好做的,因为jpeg这个协议本身就支持调整图片质量的.在golang中,我们只需要使用标准库的image/jpeg,将图片从二进制数据解码后,降低质量再编码为二进制数据即可实现压缩.而且质量和压缩比例相对而言还不错. func compressImageResource(data []byte) []byte { im

如何使用jpegtran 压缩png图片

OptiPNG – Google推荐的png图片无损压缩工具下载及使用教程 2014年08月24日 实用软件 暂无评论 optipng png图片无损压缩工具介绍: optipng png图片无损压缩工局可以让图片更加的简化,缩小图片的容量,从而增加网络的传输速度.同时也是谷歌推荐的png图片压缩工具之一.谷歌原文地址:https://developers.google.com/speed/docs/insights/OptimizeImages optipng png图片无损压缩工具官方下载地

如何使用gifsicle压缩gif图片

最近我写了一些关于如何将各种形式的多媒体格式相互转换的文章,特别是GIF动图方面的,比如如何将小视频转换成GIF动图或将GIF动图转换成视频,有很多像ImageMagick,ffmpeg这样的工具帮助我们完成这样的任务,但是这两个工具输出的GIF动图有一个问题,就是没有对图片进行优化,至少输出的GIF动图的体积有些大.因为大部分的GIF动图都是要放在网页上,最终下载到用户的浏览器里,所以,优化这些GIF图片的体积是十分必要的,这里我们就需要用到另外一个非常有用的GIF图片修改工具:gifsicl

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

通过拍照或者从相册里选择图片通过压缩并上传时很多应用的常用功能,记录一下实现过程 一:创建个临时文件夹用于保存压缩后需要上传的图片 /** * path:存放图片目录路径 */ private String path = Environment.getExternalStorageDirectory().getPath() + "/XXX/"; /** * saveCatalog:保存文件目录 */ private File saveCatalog; /** * saveFile:保存

压缩远程图片并返回

public ActionResult Pic() { var stram = new System.Net.WebClient().OpenRead("http://www.mj100.com/img/index/z_ban02.jpg"); byte[] bytes= MakeSmallImg(stram,500,500); return File(bytes,"image/jpeg","1.jpg"); } /// <summary&

改了一个shell 把APP里的全部png用 pngquant压缩一下

#!/bin/bash   function walk()   {     for file in `ls $1`     do       local path=$1"/"$file       if [ -d $path ]         then         #echo "DIR $path"         walk $path       else         local fv=${file##*.}       local fb="p

如何使用jpegtran 压缩JPG图片

说到jpegtran相信很多人都比较陌生,网上相关的资料也很少. jpegtran可以让图片更加的简化,缩小图片的容量,从而增加网络的传输速度.说在多你也不信,下面就让事实证明. 首先下载  jpegtran  下载地址为  http://jpegclub.org/jpegtran.exe 下载下来无需直接运行. 然后我们利用QQ截图快捷键ctrl+shift+A截取一张图片,保存到E盘文件名为  1.jpg 然后打开  点击  开始——运行——CMD,点击确定 使用  cd命令切换到保存jpe