为什么使用ImageMagick';让我们把工作改成广告上的?

为什么使用ImageMagick';让我们把工作改成广告上的?,imagemagick,imagemagick-convert,Imagemagick,Imagemagick Convert,我的问题不是如何模糊图像的一部分,而是为什么下面的语句正确 convert rose: \( +clone -scale 5% -scale 2000% \) \ \( +clone -gamma 0 -fill white \ -draw 'rectangle 20,10 40,20' -blur 10x4 \) \ -composite target.png 到目前为止,我的理解是第一部分 \( +clone -scale 5% -scale 2000% \) 获取源图像,该图像最

我的问题不是如何模糊图像的一部分,而是为什么下面的语句正确

convert rose: \( +clone -scale 5%  -scale 2000% \) \
\( +clone -gamma 0 -fill white \
-draw 'rectangle 20,10 40,20' -blur 10x4 \) \
-composite target.png

到目前为止,我的理解是第一部分

\( +clone -scale 5%  -scale 2000% \)
获取源图像,该图像最初是堆栈上唯一的图像,并在堆栈上复制它,然后按该顺序缩小1/20,然后放大20/1,从而修改堆栈顶部。因此,堆栈顶部的图像与其下方的图像保持相同的分辨率

下一个命令

\( +clone -gamma 0 -fill white \
-draw 'rectangle 20,10 40,20' -blur 10x4 \) \
再次复制顶部图像。因此,堆栈上现在有三个图像。Gamma被设置为异常值零,以绝对确定下一个命令“填充白色”将填充1.0,1.0,1.0的纯RGB。
-fill
命令实际上没有任何作用。它只是设置参数。实际绘图操作由
-draw
命令执行。该命令绘制一个特定的基本体(本例中为矩形),并用白色填充它。在绘制矩形后应用模糊过滤器。因此,矩形本身不会发生太多变化。这是图像的其余部分将被该过滤器模糊

接下来我迷路了。
-composite
操作符将覆盖堆栈顶部的图像,覆盖堆栈上它下面的图像。但由于堆栈上有三个图像,因此堆栈底部的图像将被忽略。想澄清一下吗

我还想学习如何钓鱼,而不是被提供一条鱼:
manconvert
指向页面,但页面上没有“stack”出现。我应该从哪一个参考页开始理解上面的简短
转换
代码片段?

首先,对于一些“钓鱼课程”,您可以阅读有关命令行处理和命令顺序等的内容。另外,请看一看Anthony Thyssen的优秀“用法”页面

关于你的问题,解释是当堆栈上有三个图像时(正如你正确地说的那样),第三个图像充当其他两个图像操作的遮罩。这是解释

进一步的“钓鱼课”。。。如果您一直使用ImageMagick,可以通过多种方式进行调试

技术1

删除命令的最后一部分(创建输出文件的位,包括最后一个
-composite
),并将其替换为如下文件名:

convert rose:                          \
  \( +clone -scale 5%  -scale 2000% \) \
  \( +clone -gamma 0 -fill white -draw 'rectangle 20,10 40,20' -blur 10x4 \) \
  temp-%d.png
现在运行它,您将在名为
temp-0.png
temp-1.png
等的failed中看到堆栈中的所有图像

技术2

添加中间
-在处理管道的各个阶段写入

convert rose: \( +clone -scale 5%  -scale 2000% -write temp1.png \) \
 \( +clone -gamma 0 -fill white -draw 'rectangle 20,10 40,20' -blur 10x4 -write temp2.png \) \
...
首先,对于一些“钓鱼课程”,您可以阅读有关命令行处理和命令顺序等的内容。此外,还可以看看Anthony Thyssen的优秀“用法”页面

关于你的问题,解释是当堆栈上有三个图像时(正如你正确地说的那样),第三个图像充当其他两个图像操作的遮罩。这是解释

进一步的“钓鱼课”。。。如果您一直使用ImageMagick,可以通过多种方式进行调试

技术1

删除命令的最后一部分(创建输出文件的位,包括最后一个
-composite
),并将其替换为如下文件名:

convert rose:                          \
  \( +clone -scale 5%  -scale 2000% \) \
  \( +clone -gamma 0 -fill white -draw 'rectangle 20,10 40,20' -blur 10x4 \) \
  temp-%d.png
现在运行它,您将在名为
temp-0.png
temp-1.png
等的failed中看到堆栈中的所有图像

技术2

添加中间
-在处理管道的各个阶段写入

convert rose: \( +clone -scale 5%  -scale 2000% -write temp1.png \) \
 \( +clone -gamma 0 -fill white -draw 'rectangle 20,10 40,20' -blur 10x4 -write temp2.png \) \
...