我有几幅风景画。
在OSX上使用ImageMagick CLI,我想扭曲并正确覆盖它们。
我已经查找了几张图片和参考图片之间的失真坐标。我无法理解-distort
和+distort
之间的差异以及它与+repage
的关系。当我使用-distort
时,输出具有所需的偏移但它不完整(需要更大)。当我使用+distort
时,我会得到完整的图像,但它缺少偏移量。
阅读文档我明白如果我在偏移信息丢失之前在相同的命令中完成叠加组合,我可以做到没有偏移但是发生的事情是失真被应用于参考和失真的图像
-distort
结果的偏移量在我将其应用为叠加层时会起作用(此处使用composite
作为单独的命令,但它缺少了大部分图片。
这是我目前正在使用的命令:
convert base.jpg overlay.jpg
-matte -virtual-pixel transparent -distort Perspective '961,1695 1856,2461 2279,1520 3185,2303 3564,2173 4441,2970 1547,2817 2441,3594'
-compose blend -define compose:args=50,100 -composite result.jpg
我知道我可以在那里使用括号,但我没看到我应该把它们放在哪里。
谢谢!
答案 0 :(得分:1)
解决方案是使用-flatten
代替-composite
。
convert base.jpg \( b.jpg -matte -virtual-pixel transparent +distort Perspective '961,1695 1856,2461 2279,1520 3185,2303 3564,2173 4441,2970 1547,2817 2441,3594' \) -compose blend -define compose:args=100,50 -flatten result.jpg
原来-composite
忽略图像偏移,而-flatten
使用图层并使用偏移信息。
这个建议来自这个帖子:http://www.imagemagick.org/discourse-server/viewtopic.php?t=20157
这是flatten
的文档(上面讨论中断开的链接):http://www.imagemagick.org/Usage/layers/#flatten
答案 1 :(得分:0)
我不确定我是否理解这些问题,但建议你试试这个(未经测试):
convert base.jpg \
\( overlay.jpg -matte -virtual-pixel transparent -distort Perspective '961,1695 1856,2461 2279,1520 3185,2303 3564,2173 4441,2970 1547,2817 2441,3594' \) \
-define compose:args=50,100 -compose blend -composite result.jpg
这意味着透视变形仅应用于叠加,而不是基础。因此,在上面的代码中,第一行仅处理基本图像,第二行仅处理叠加,最后一行混合两者。