今年初写了一篇《用PHP绘图功能在网站上输出图片》,记录的是使用PHP语言来在网站上加入图片,图片可以根据需要绘制,例如设置尺寸、增加文字、粘贴图片、旋转拉伸等,功能很强大,然后我们在多个网站上都进行了应用实施。
现在又有一个新需求:需要批量处理一些图片,进行尺寸调整、拼接合并等,可以用前面提到的PHP程序来做,但在网上也找到更简单方便的Linux命令行方式,就是使用ImageMagick的convert命令。
例如:
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程序里面的函数更强大,以后在需要的时候再尝试。
2022年9月补充:《用Magick命令调整APNG动画图片大小》
自由标签
评论