当我尝试使用-mosaic
组合两个图像时,我似乎有两个选择:
$ convert logo: rose: -mosaic result.png
$ convert -mosaic logo: rose: result.png
两者都会产生相同的图像。如果我使用括号,那就不再适用了:
$ convert logo: \( rose: \) -mosaic result.png
仍会产生相同的输出图像,但下一个
$ convert -mosaic logo: \( rose: \) result.png
结果完全不同。
有人可以解释为什么最后的结果有所不同吗?这是convert
中的错误还是ImageMagick中的另一个概念我还没有掌握?
我正在使用ImageMagick 6.8.6-2(由Arch Linux打包)
答案 0 :(得分:0)
括号创建一个子流程,或image stack,允许从父流程中隔离其他图像处理。
$ convert logo: rose: -mosaic result.png
$ convert logo: \( rose: -negate -resize 200% \) -mosaic result.png
命令序列非常重要,因为马赛克需要层加入。以下命令是相同的,因为忽略了-mosaic命令&没有命令在任何子进程上执行。
$ convert logo: rose: result.png
$ convert logo: \( rose: \) result.png
$ convert -mosaic logo: \( rose: \) result.png
答案 1 :(得分:0)
我想我发现了它为什么会这样运作。然而,尽管提供了大量的文档,ImageMagick似乎仍然是一个神秘的科学,因为编织的多样性兼容层。
阅读http://www.imagemagick.org/Usage/basics/#cmdline之后,我想我可以总结以下内容:
convert [operator] [input-image] [output-image]
应该仍然可行。")如果有人读到这个与转换为我的语法有类似的问题,我建议阅读上面的链接,不要停止研究它,直到你完全理解图像列表,图像操作符和图像序列操作符的概念。它不是太复杂,但如果你只是使用试验&错误,你会像我一样,非常难以理解语法。