首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换、圆括号、-mosaic和顺序

转换、圆括号、-mosaic和顺序
EN

Stack Overflow用户
提问于 2013-07-13 02:25:48
回答 2查看 1.6K关注 0票数 1

当我尝试使用-mosaic合并两个图像时,我似乎有两个选择:

代码语言:javascript
复制
$ convert logo: rose: -mosaic result.png
$ convert -mosaic logo: rose: result.png

两者都会产生相同的图像。如果我使用圆括号,这就不是真的了:

代码语言:javascript
复制
$ convert logo: \( rose: \) -mosaic result.png

仍然会产生相同的输出图像,但下一幅

代码语言:javascript
复制
$ convert -mosaic logo: \( rose: \) result.png

会有完全不同的结果。

有人能解释一下为什么最后的结果是不同的吗?这是convert中的一个bug,还是ImageMagick中另一个我还没能理解的概念?

我使用的是ImageMagick 6.8.6-2 (由Arch Linux打包)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-14 16:12:45

我想我知道为什么它是这样的了。然而,尽管有大量的文档可用,ImageMagick仍然看起来像是一门神秘的科学,因为其中交织着不同的兼容层。

在阅读了http://www.imagemagick.org/Usage/basics/#cmdline之后,我想我可以总结如下:

  1. ImageMagick 6.x有一个全新的语法,在这个语法中,在第一个image.
  2. ImageMagick 6.x之前有任何操作符试图在某种程度上模仿旧的5.x版本的语法是没有意义的(“像convert [operator] [input-image] [output-image]这样的简单5.x操作仍然是可能的。”)
  3. 如果我理解正确的话,括号不是5.x的一部分。
  4. 所以得出结论说在命令行上存在括号会以某种方式禁用兼容模式并不牵强,这可以解释观察到的行为。

如果任何阅读这篇文章的人在转换到我的语法上有类似的问题,我建议阅读上面的链接,不要停止学习它,直到你完全理解图像列表,图像操作符和图像序列操作符的概念。这不是太复杂,但如果你只是使用试错,你会像我一样,很难理解语法。

票数 1
EN

Stack Overflow用户

发布于 2013-07-14 00:12:33

圆括号创建一个子进程或image stack,它允许将其他图像处理与父进程隔离开来。

代码语言:javascript
复制
$ convert logo: rose: -mosaic result.png

代码语言:javascript
复制
$ convert logo: \( rose: -negate -resize 200% \) -mosaic result.png

命令的顺序可能很重要,因为马赛克需要连接图层。以下命令是相同的,因为忽略了-mosaic命令&没有在任何子进程上执行任何命令。

代码语言:javascript
复制
$ convert logo: rose: result.png
$ convert logo: \( rose: \) result.png
$ convert -mosaic logo: \( rose: \) result.png
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17621593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档