2007年12月23日星期日

resize jpeg in console

每次出去照相,回来就要处理很多照片,分批重命名可以在gThumb很方便的完成,但是他的"改变大小"工具一次只能改变一个文件。如果要批量压缩用于上传,则只好使用其他工具,我发现用命令行的convert命令非常快捷~
首先要安装convert,为了判断是否已经安装,可以测试convert --help
如果提示未找到该命令,则按照提示
sudo apt-get install ImageMagic
如果看到了好几屏的帮助信息,就表明已经安装了

然后进入你的图片的目录,随便找一个文件测试,比如叫test.jpg,执行
convert -resize 30% -quality 85% test.jpg test2.jpg
则转换好的文件命名为test2.jpg,去看看效果如何
可以调整参数resize和quality,感觉resize和文件大小呈2次方关系,quality和文件大小呈线性关系,没有严格统计过,因为后者应该和图片内容有关,resize后的尺寸到1024x768就够了,再大就马赛克了,除非你的相机真的很厉害(感觉现在傻瓜数码相机就是像素高,镜头差感光器也差,所以2MB的照片放大到100%根本没法看……)。quality不要设的太低,因为它和视觉体验不是线性关系,就是说,当你把quality从90%调成80%时,感觉图片没糙多少,但是从80%调成70%时,就觉得图片明显变糙了。(谁来做个视觉心理学实验?)


最后就是批量转换,最爽的时刻到了。参考http://www.ibm.com/developerworks/cn/linux/l-graf/
mkdir resized
for img in `ls *.jpg`
do
convert -resize 30% -quality 85% $img resized/$img
done
[预告:下一篇将接着这个话题讲述如何利用picasa api编写java桌面程序,上传你的照片文件夹到你的picasa网络相册]

没有评论: