Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以修剪图像并强制其尺寸与ImageMagick一致?_Imagemagick - Fatal编程技术网

是否可以修剪图像并强制其尺寸与ImageMagick一致?

是否可以修剪图像并强制其尺寸与ImageMagick一致?,imagemagick,Imagemagick,是否可以使用命令行版本的ImageMagick修剪图像(例如带有alpha的PNG),使输出图像的宽度和高度都是偶数(而不是奇数) 准确地说,输出图像应该首先修剪,然后用透明像素填充。我需要这个用于sprite板材打包,因此在所有必要的操作之后,我希望访问存储的“页面几何体”或“原始几何体”(也可以作为%[fx:Page.x]%[fx:Page.y]格式变量提供) 我知道这可以通过大量的shell/批处理脚本实现,但坦率地说,我正在寻找智能的一行程序。更新的答案 似乎您希望填充图像,而不是修剪或

是否可以使用命令行版本的ImageMagick修剪图像(例如带有alpha的PNG),使输出图像的宽度和高度都是偶数(而不是奇数)

准确地说,输出图像应该首先修剪,然后用透明像素填充。我需要这个用于sprite板材打包,因此在所有必要的操作之后,我希望访问存储的“页面几何体”或“原始几何体”(也可以作为
%[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
也会起作用。不幸的是,我不能和莫格里菲一起完成这件事。