找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 12716|回复: 2

优化图片

[复制链接]
发表于 2009-11-30 02:49:44 | 显示全部楼层 |阅读模式 IP:江苏扬州
作者:老王

抽空做了点儿图片优化的工作,主要是利用以下几个软件:gifsicle,jpegtran,pngcrush。

安装gifsicle:

wget http://www.lcdf.org/gifsicle/gifsicle-1.55.tar.gz
tar zxf gifsicle-1.55.tar.gz
cd gifsicle-1.55
./configure
make
make install

安装jpegtran:

wget http://jpegclub.org/droppatch.v7.tar.gz
tar zxf droppatch.v7.tar.gz
cp ./jpegtran /usr/local/bin

安装pngcrush:

wget http://downloads.sourceforge.net/project/pmt/pngcrush/1.7.0/pngcrush-1.7.0.tar.gz
tar zxf pngcrush-1.7.0.tar.gz
cd pngcrush-1.7.0
make
cp ./pngcrush /usr/local/bin

编写optimize_image.sh:

三个软件分别对应三种不同的图片格式,所以有必要做一个抽象层脚本(optimize_image.sh):

#!/bin/sh

GIFSICLE="/usr/local/bin/gifsicle"
JPEGTRAN="/usr/local/bin/jpegtran"
PNGCRUSH="/usr/local/bin/pngcrush"

if [ $# -ne 2 ]; then
echo "Usage: $0 input output"
exit 1
fi

INPUT=$1
OUTPUT=$2

case `file -i $INPUT` in
*image/gif ) `$GIFSICLE -o $OUTPUT $INPUT > /dev/null`;;
*image/jpeg) `$JPEGTRAN -optimize -copy none -outfile $OUTPUT $INPUT > /dev/null`;;
*image/png ) `$PNGCRUSH -brute -reduce -rem alla $INPUT $OUTPUT > /dev/null`;;
*) echo "$INPUT is not a valid image file";;
esac

exit 0

使用很简单,别忘了先chmod a+x ./optimize_image.sh,然后:

./optimize_image.sh 原始图片 优化图片

注意:那些喜欢拿来主义的同志们,在拷贝上面代码的时候一定更要注意行结束符,很多人总犯的一个毛病就是在Windows下拷贝shell脚本然后放到Linux下用,这样的shell脚本是不会运行的,需要先转换一下行结束符,比如可以在VI下面使用命令":set ff=unix"。

出于演示的目的,脚本写得简单了点,还有很多地方没有深究,比如说gifsicle主要用于优化动画GIF文件,不过如果是静态GIF文件,通常也可以用它优化一下,但处理静态GIF图片更好的方法是把他们都转换成PNG格式,另外在使用jpegtran处理JPEG图片的时候,如果是大图片,增加一个progressive参数会更好,但如果仅仅是小图片,则不必加入此参数,至于pngcrush,还有几个类似的软件可以选择:pngrewrite,optipng,pngout,punypng。

参考文档:Image Optimization for the Web at php|works
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 13:15 , Processed in 0.429828 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表