首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ImageMagick反射

ImageMagick反射
EN

Stack Overflow用户
提问于 2008-10-13 20:32:08
回答 3查看 3.6K关注 0票数 5

简介:

代码语言:javascript
复制
convert ( -size 585x128 gradient: )  NewImage.png

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

详细信息:

我正在尝试用ImageMagick编程地创建一个图像反射。我正在寻找的效果类似于你在看水池边缘的物体时所看到的效果。关于我正在尝试做什么,这里有一个很好的线索,但是解决方案并不是我想要的。因为我将从一个ImageMagick应用程序调用C#.Net,所以我想使用一个没有任何临时文件的调用,然后通过stdout返回映像。到目前为止我有这个。

代码语言:javascript
复制
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相乘0.3 -negate)部分,以使它更轻松一点,因为我没有得到我想要的淡色。我也不希望在创建渐变( -size 585x128梯度:)时必须按图像大小进行硬编码,如果可能的话,我也希望保持原始图像的透明度。

为了达到标准,我计划将"NewImage.png“替换为"-”。

EN

回答 3

Stack Overflow用户

发布于 2008-10-15 16:24:11

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

代码语言:javascript
复制
command = String.Format("convert bar %1x%2",img.Width,img.Height)
票数 1
EN

Stack Overflow用户

发布于 2008-11-19 04:54:03

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

票数 0
EN

Stack Overflow用户

发布于 2010-04-23 19:20:40

也许这会有帮助:图像下的反射

代码语言:javascript
复制
#!/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
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/198928

复制
相关文章

相似问题

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