是否可以修剪图像并强制其尺寸与ImageMagick一致?
是否可以使用命令行版本的ImageMagick修剪图像(例如带有alpha的PNG),使输出图像的宽度和高度都是偶数(而不是奇数) 准确地说,输出图像应该首先修剪,然后用透明像素填充。我需要这个用于sprite板材打包,因此在所有必要的操作之后,我希望访问存储的“页面几何体”或“原始几何体”(也可以作为是否可以修剪图像并强制其尺寸与ImageMagick一致?,imagemagick,Imagemagick,是否可以使用命令行版本的ImageMagick修剪图像(例如带有alpha的PNG),使输出图像的宽度和高度都是偶数(而不是奇数) 准确地说,输出图像应该首先修剪,然后用透明像素填充。我需要这个用于sprite板材打包,因此在所有必要的操作之后,我希望访问存储的“页面几何体”或“原始几何体”(也可以作为%[fx:Page.x]%[fx:Page.y]格式变量提供) 我知道这可以通过大量的shell/批处理脚本实现,但坦率地说,我正在寻找智能的一行程序。更新的答案 似乎您希望填充图像,而不是修剪或
%[fx:Page.x]
%[fx:Page.y]
格式变量提供)
我知道这可以通过大量的shell/批处理脚本实现,但坦率地说,我正在寻找智能的一行程序。更新的答案 似乎您希望填充图像,而不是修剪或调整图像大小,因此您可以使用
-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,因此将向右侧和底部移动。例如,如果要向左和向上填充,请在-extent
之前使用-gravity-southerast
原始答案 未经测试,但应该有效 这将为您提供新的维度:
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
我将出价4行的贝壳。。。1获取宽度和高度,1获取圆形宽度,1获取圆形高度,1获取大小。我将把我的出价提高到2行
bash
。。。1来获得宽度和高度,再加上1来调整大小。这段代码调整了图像的大小,我希望它保持原始大小,但画布更大。我将承担责任,因为我的问题不够精确。尽管如此,它还是帮助了我,因为我们可以将-resize
更改为-extent
。请再看一看-我添加了一些更有用的东西。谢谢,应该可以了!我已经将IM升级到v7,我很确定现在它可以解析其他参数中的FX表达式。所以magick image.png-背景橙色-范围“%[fx:2*int((w+1)/2)]x%[fx:2*int((h+1)/2)]!”结果。png
也会起作用。不幸的是,我不能和莫格里菲一起完成这件事。