5

简短的:

convert ( -size 585x128 gradient: )  NewImage.png

如何更改上述 ImageMagick 命令,使其从现有图像中获取宽度和高度?我需要它保持单行命令。


细节:

我正在尝试使用 ImageMagick 以编程方式创建图像反射。我正在寻找的效果类似于您在查看水池边缘的物体时看到的效果。关于我在这里尝试做的事情有一个很好的主题,但解决方案并不是我正在寻找的。由于我将从 C#.Net 应用程序调用 ImageMagick,因此我想使用一个没有任何临时文件的调用并通过标准输出返回图像。到目前为止,我有这个...

convert OriginalImage.png  ( OriginalImage.png -flip -blur 3x5 \
    -crop 100%%x30%%+0+0 -negate -evaluate multiply 0.3 \
    -negate  ( -size 585x128 gradient: ) +matte -compose copy_opacity -composite )
    -append NewImage.png

这工作正常,但没有给我我正在寻找的确切褪色。它不是从上到下的漂亮的实心渐变,而是从左上角到右下角的渐变。我添加了 (-negate -evaluate multiply 0.3 -negate) 部分以使其更亮一点,因为我没有得到我想要的淡入淡出。我也不想在创建渐变时对图像的大小进行硬编码(-size 585x128 gradient:),如果可能的话,我还想保持原始图像的透明度。

要转到标准输出,我计划用“-”替换“NewImage.png”

4

3 回答 3

1

如果您从 C# 调用它,也许您可​​以在 C# 中检索图像尺寸。然后调用 ImageMagick 命令

command = String.Format("convert bar %1x%2",img.Width,img.Height)
于 2008-10-15T16:24:11.053 回答
0

您应该将现有图像作为输入,并使用 -fx 而不是使用渐变伪格式自己创建渐变。

于 2008-11-19T04:54:03.190 回答
-1

这可能会有所帮助: 图像下的反射

#!/bin/sh

gamma=$1
source=$2
destination=$3
size=`identify -format "%wx%h" $source`

convert $source \
  \( -size $size xc:none \
  \( \( -flip $source -crop $size+0+0 \) \
  -size $size gradient: -gamma $gamma \
  -compose copy_opacity -composite \) \
  -compose blend -composite \) \
  -append $destination
于 2010-04-23T19:20:40.167 回答