修剪图像并强制其尺寸均匀

时间:2016-08-01 21:53:56

标签: imagemagick

是否可以使用命令行版本的ImageMagick修剪图像(例如使用alpha的PNG),使输出图像的宽度和高度均匀(不奇怪)?确切地说,应首先修剪输出图像,然后用透明像素填充。我需要这个用于精灵表打包所以在完成所有必要的操作之后我想访问存储的'Page geometry'或'Origin geometry'(也可以作为%[fx:page.x]%[fx:page.y]格式变量) 。

我知道这可以通过广泛的shell /批处理脚本来实现,但坦率地说我正在寻找智能的单行程。

1 个答案:

答案 0 :(得分:1)

更新了答案

您似乎希望图片填充,而不是修剪或调整大小,因此您可以使用-extent执行此操作,如您在评论中所述:

convert image.png -background orange -extent  $(convert image.png -format '%[fx:2*int((w+1)/2)]x%[fx:2*int((h+1)/2)]!' info:) result.png

如果你想用透明像素填充图像,而不是我那相当时髦的橙色(!),请将orange更改为none

默认-gravity是NorthWest,这将填充到右侧和底部。例如,如果您想填充左侧和顶部,请在-gravity SouthEast之前使用-extent

原始答案

未经测试,但应该有效......

这将为您提供新的尺寸:

convert image.png -format '%[fx:2*int((w+1)/2)]x%[fx:2*int((h+1)/2)]!' info:

所以你需要这样做:

convert image.png -resize $(COMMAND ABOVE) result.png