Linux下批量缩小图片

Linux下批量缩小图片

周末出去玩,照了几张数码相片。上传到网上之前需要缩小一下,以前在Windows里都是用"光影魔术手",在Linux下如何完成这个工作呢?我开始是用GIMP一张的转,但太麻烦了,GIMP支持批处理脚本的,Google关键词"gimp-image-scale"可以找到一些这方面的脚本。不过更方便的是用Image Magick这个命令行图像处理软件,我在Ubuntu论坛找到 一篇这方面的文章.

先用如下命令装上Image Magick:
sudo apt-get install imagemagick


缩图方法一:convert -resize 50%x50%  photos\*.JPG   small\

这种方法转成的图片的文件名变成了数字,如果希望原文件名不变,可以用如下命令(实际上是一个四行合为一行的脚本)。

缩图方法二:for img in `ls photos\*.JPG`; do convert -resize 50%x50% $img small-$img; done


感觉要比如以前Windows下的软件方便多了。

注:我之前曾象资料里用-sample参数,而非-resize。但前者可能不仅缩放了大小,还压缩了图像,所以我对缩小后的图片质量不太满意。用convert -h可以显示其所有参数,我后来选用了-resize。


后续。。。
过了两天,我看到一篇文章,ubuntu自带的gThumb也可以缩小图片的。我一看,果然。它是界面操作,感觉还是没有convert的命令行来得快。不过,如果你只是偶尔缩小一下图片,也就不必去装其他软件了,就用自带的gThumb好了。使用方法如下:

启动:我习惯进入到图片目录(我装了一个快速进入终端的右键菜单),然后用命令行启动: gthumb *.JPG。这样一启动gthumb所有图片都在那了。当然,也可以用主菜单“应用程序->图像->gThumb图像浏览器”来启动,再选择图片。

全选所有图片,然后“工具->scale images....”,重选一个保存目标。接下去就不用说了。





Ubuntu论坛的原文资料复制如下:

mage MagicK 是一个强大的图象处理工具包。它提供了几个非常方便的命令行命令: display, animate,import, montage,mogrify,identify等,可以进行图象的显示,缩放,旋转,调色,加框,加注释等,还能制作GIF动画,图象索引,能自动生成图象.

1. 制作索引图和动画

!/bin/bash
montage -bordercolor red -borderwidth 3 -label "%f" -tile 5x3 *.JPG montage.jpg
mogrify -format gif *.JPG
display montage.jpg
animate *.JPG

2. 缩放 convert -sample 80x40 input.jpg output.jpg #注意:缩放后图像保持原来的长宽比例 convert -sample 25%x25% input.jpg output.jpg
3. 为当前目录的所有图像生成缩略图

for img in `ls *.jpg`
do
convert -sample 25%x25% $img thumb-$img
done

4. 获取文件信息 libtiff

tiffinfo filename.tiff
pnginfo filename.png

5. 可以使用 ImageMagick 的 identify

identify -verbose sample.png
identify -format "%wx%h" sample.png

6. 旋转图像

convert -rotate 90 input.jpg output.jpg

7. 更改文件类型

convert input.jpg output.png

8. 为图像增加注释文字

convert -font helvetica -fill white -pointsize 36 \
-draw 'text 10,50 "Floriade 2002, Canberra, Australia"' \
floriade.jpg comment.jpg
convert -font fonts/1900805.ttf -fill white -pointsize 36 \
-draw 'text 10,475 "stillhq.com"' \
floriade.jpg stillhq.jpg

9. 特殊效果

convert -charcoal 2 input.jpg output.jpg #炭笔
convert -colorize 255 input.jpg output.jpg #着色 可以指定三种颜色 red/green/blue
convert -implode 4 input.jpg output.jpg #内爆效果
convert -solarize 42 input.jpg output.jpg #曝光,模拟胶片曝光
convert -spread 5 input.jpg output.jpg #随机移动,参数是位移大小

10. 一次执行多个操作

convert -sample 25%x25% -spread 4 -charcoal 4 input.jpg output.jpg




你可能感兴趣的:(Linux下批量缩小图片)