最新消息:阿啰哈,本人90后,目前单身,欢迎妹子们来撩!.(。→‿←。)

Shell脚本PNG图片压缩工具

Shell 林志斌 1004浏览

TinyPNG 使用一种智能有损压缩技术(通过降低图片中的颜色数量,来减少存储图片所需要的数据)来降低 PNG 图片的大小。这样的压缩对图片的效果影响是很小的,但是可以大大降低图片的大小,并且还能保持 PNG 的 alpha 透明度。

此shell脚本使用的是TinyPNG提供的API,才实现了这个在线PNG图片压缩工具。 这样我就可以用它来压缩我服务器上所有的PNG图片了,主要还是因为它的压缩能力极强
下面大家一起来见证它的压缩能力(注:下面所有被压缩的PNG图片我早先就已使用optipng工具压缩过一次了) 
[[email protected] 10]# ll ../12/*.png(压缩前大小)
-rw-r--r-- 1 apache apache  48K Jan 23 12:15 ../12/20131208110938_57170.png
-rw-r--r-- 1 apache apache  20K Jan 23 12:15 ../12/20131208110956_24226.png
-rw-r--r-- 1 apache apache  46K Jan 23 12:15 ../12/20131212004208_16100.png
-rw-r--r-- 1 apache apache 437K Jan 23 12:15 ../12/20131213135339_63476.png
-rw-r--r-- 1 apache apache  71K Jan 23 12:15 ../12/20131217213240_23413.png
[[email protected] 10]# ./png.tiny.sh /www.kashu.org/12/ &> /dev/null 
[[email protected] 10]# ll ../12/*.png(压缩后大小)
-rw-r--r-- 1 root root  28K Apr 20 00:43 ../12/20131208110938_57170.png
-rw-r--r-- 1 root root 6.9K Apr 20 00:43 ../12/20131208110956_24226.png
-rw-r--r-- 1 root root  30K Apr 20 00:43 ../12/20131212004208_16100.png
-rw-r--r-- 1 root root 142K Apr 20 00:43 ../12/20131213135339_63476.png
-rw-r--r-- 1 root root  24K Apr 20 00:43 ../12/20131217213240_23413.png

#!/bin/bash
#Author: www.kashu.org
#Date: 2014-04-23
#Filename: png.tiny.sh
#Description: Advanced lossy compression for PNG images that preserves full alpha transparency.

test ! -d "$1" && { echo "$1" is not a valid DIRECTORY && exit 1; }
cd "$1"
for i in *.png; do
  pic_path=`curl -sif --user api:iuC7u7VlWiapdFZS2R1c0d29KxoB_ --data-binary @${i} https://api.tinypng.com/shrink|awk '/Location:/{print $NF}'`
  PIC_PATH=${pic_path/.png*/.png}
  wget --no-check-certificate "$PIC_PATH" -O "$i"
done

下面这个脚本稍微猛一点,可以压缩指定路径下的所有png图片(递归操作)

#!/bin/bash
#Author: www.kashu.org
#Date: 2014-04-23
#Filename: png.sh
#Description: Advanced lossy compression for PNG images that preserves full alpha transparency.

test ! -d "$1" && { echo "$1" is not a valid DIRECTORY && exit 1; }
cd "$1"
for i in `find $1 -name '*.png'`; do
   pic_path=`curl -sif --user api:iuC7u7VlWiapdFZS2R1c0d29KxoB_ --data-binary @${i} https://api.tinypng.com/shrink|awk '/Location:/{print $NF}'`
   PIC_PATH=${pic_path/.png*/.png}
   wget --no-check-certificate "$PIC_PATH" -O "$i"
done

转载请注明:林志斌 » Shell脚本PNG图片压缩工具

发表评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址