当前位置

Linux下用ImageMagick的convert批量处理图片

James Qi 在 2019年5月6日 - 12:23 提交

  今年初写了一篇《用PHP绘图功能在网站上输出图片》,记录的是使用PHP语言来在网站上加入图片,图片可以根据需要绘制,例如设置尺寸、增加文字、粘贴图片、旋转拉伸等,功能很强大,然后我们在多个网站上都进行了应用实施。

  现在又有一个新需求:需要批量处理一些图片,进行尺寸调整、拼接合并等,可以用前面提到的PHP程序来做,但在网上也找到更简单方便的Linux命令行方式,就是使用ImageMagickconvert命令。

  例如:

convert -resize 40x40  source.png destination.png

  resize还有很多参数用法:

-resize
100x100      高度和宽度比例保留最高值,高比不变
100x100^     高度和宽度比例保留最低值,宽高比不变
100x100!      宽度和高度强制转换,忽视宽高比
100x100>     更改长宽,当图片长或宽超过规定的尺寸
100x100<     更改长宽 只有当图片长宽都超过规定的尺寸
100x100^>   更改长宽,当图片长或宽超过规定的尺寸。高度和宽度比例保留最低值
100x100^<   更改长宽,只有当图片长宽都超过规定的尺寸。高度和宽度比例保留最低值
100             按指定的宽度缩放,保持宽高比例
 x100          按指定高度缩放,保持宽高比

-gravity NorthWest, North, NorthEast, West, Center, East,  SouthWest, South, SouthEast截取用的定位指令,定位截取区域在图片中的方位

  -resize与-gravity、-extent结合起来的用法,缩放+居中+补白:

convert -resize 40x40 -background white -gravity center -extent 40x40 source.png destination.png

  Linux下批量处理的办法:

for file in *.png; do
echo $file
convert $file -resize 40 $file
#echo $file
done

  这个convert还有很多高级功能我们还没有用到,应该比PHP程序里面的函数更强大,以后在需要的时候再尝试。

 

 

 

 

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。