我担心答案部分是哲学的,部分是民间传说,部分意见和GraphicsMagick的部分灵活性,以及部分manpages的僵化。让我解释一下......
要理解答案,您需要区分settings
和operators
。 @KurtPfeifle的表现非常出色here其中,为了完整起见,我将总结如下:
也许一个例子会有所帮助。首先,我们使用-size
设置:
gm convert -background none xc:red -size 5x5 xc:lime xc:blue -size 10x10 xc:magenta +append setting.png
最初,默认尺寸为1x1的,所以红帆布在1x1的出来。然后我改变了设置,并保持在5x5
石灰和蓝色画布,直到我将其更改为10x10洋红色的一个。这些是设置,他们设置了未来的图像。
现在,我做了类似的事情与-colorspace
操作:
gm convert xc:red xc:lime xc:blue -colorspace gray +append operator.png
你看到-colorspace
运营商改变了这一切已经在图像列表中的图像,即它们处理先前已添加到列表中的图像。
如果你喜欢,你可以简化一些事情,并说“设置适用于所有将要到来的,并且运营商适用于所有去过的”。虽然我确信有反例。
几年前,命令行选项的顺序已经合理化,GraphicsMagick允许一些灵活性来保留一些向后兼容性。这可能是你实际问题的最好解释。
因此,一般来说,您应该尽快在命令行中声明settings
,并根据当前列表中的图片将运算符应用于最有意义的位置。
另一个原因是,如果所有的GraphicsMagick组合和排列都放在常规的联机帮助页中,那么就会非常麻烦。你能想象:
gm convert [[[operators|settings]|[settings|operators]] image] [[settings|operators]|[operators]] ...
大纲不正确。应该是“gm convert [options ...] input_file [options ...] output_file”。我们会解决这个问题。 –