很多时候我们需要将别人网站上的图片拿过来自己用,这些图片有些经过优化,有些没有,有些尺寸很小,但也有些特别大。而且图片的格式也不统一,大多是.jpg格式的,但也有.png/.gif 甚至 .bmp格式的。我发现很多外国的网站上喜欢使用 .png 格式的图片,也行是png图片格式不像其它图片那样有版权问题吧,但png的问题是体积非常大,而相同品质的jpg图片可能只有png图片的二分之一甚至三分之一。
我经常会遇到一个页面是有几十个png图片的问题,这时候必须将将这些图片优化压缩一下,因为你会发现其中有些看似很简单的普通的体积通常会有三、四百KB。由于经常会遇到这样的问题,我通常会将这个页面’另存为‘,保持到桌面,这样页面上的图片都会保存到一个文件夹里,我会用ImageMagic这个图片处理工具优化它们,如果一个图片一个图片的执行优化命令,那会非常费事,下面是我写的一个批处理文件,执行这个批处理文件,它会将指定文件目录下的所有图片全部转换成jpg格式,并且将图片质量压缩到80%品质:
@echo off for /f "delims=" %%i in ('dir /b /s %1') do ( "D:/Program Files/ImageMagick-6.8.9-Q16/convert.exe" %%i -quality 80 %%i.jpg echo %%i del %%i ) pause
需要注意的是,上面的ImageMagick的安装路径是我本机的路径,如果你需要使用这个脚本,需要将上面的路径该为自己的。这个脚本的执行过程是,首先遍历指定的目录(执行时提供的参数),然后用ImageMagick优化这个图片,并给这个文件改名,然后删除原文件。
我把这个脚本命名为 batch-images-optimize.bat
,假设我将所有的图片都放入了 my-images
目录里,执行的命令是这样的:
batch-images-optimize.bat my-images
执行完后你会发现,目录下的所有图片都变成了jpg格式,而且体积大幅度减小,我曾做过实验,优化前的目录下放置23个png图,总共体积是1.6M,执行完这个批处理命令后,总体积变成 465KB,体积减小了3/4,非常可观。
欢迎提出你对这个脚本的优化建议。