使用 ImageMagick 使部分边缘变得柔和

问题描述 投票:0回答:1

这是一张类似于透明背景上某人的身份证照片的图画。我想让底部变软。只要绿色形状接触到,它就必须是底部(包括侧面)。

-blur
技术正在柔化整个图案,因此我放弃了它。

这个想法是在底部画一个矩形,并用从黑色到无的渐变填充它(顶部:黑色,到底部:无),并在侧面绘制两个小矩形。

透明背景似乎不太支持渐变颜色。

magick -size 120x120 xc:none -alpha set -stroke none \
  -fill SpringGreen2 -draw 'rectangle 0,100 120,120' \
  -fill SpringGreen3 -draw 'roundrectangle 20,60 100,120 10,10' \
  -fill SpringGreen -draw 'circle 60,40 60,65'  \
  out.gif

这看起来像是我们所追求的目标,是在 inkscape 中使用白色贝塞尔曲线并对其进行模糊处理完成的,因此在白色网页上它看起来不错。必须是透明背景。

imagemagick
1个回答
1
投票

GIF 图像只能使像素的透明度完全打开或完全关闭。因此,要制作具有渐变透明度的图像,您需要使用支持它的格式,PNG 可能是最常见的。

要使用 ImageMagick 将结果创建为 PNG 图像,您可以创建基本图像,将其分成红色、绿色、蓝色和 alpha 通道,创建包含该渐变模糊的 aplha 通道,然后重新组合通道输出。

此命令采用 Windows 语法。 (下面是未经测试的 *nix 操作系统版本。)

magick -size 120x120 -background none xc:none -alpha set -stroke none ^
   -draw "fill SpringGreen2 rectangle 0,100 120,120" ^
   -draw "fill SpringGreen3 roundrectangle 20,60 100,120 10,10" ^
   -draw "fill SpringGreen circle 60,40 60,65" ^
   -channel RGBA -separate ^
   (  xc:white -bordercolor black -shave 6x6 -border 6x6 -blur 0x6 ^
      -clone -1 -compose darken -composite -compose over ) ^
   -delete -2 -combine result.png

该命令生成此图像...

在括号内,该命令创建一个边缘模糊的图像,并将其与分离的 Alpha 通道合成。在括号之后,它组合了 R、G、B 和新创建的 Alpha 通道以产生输出结果。

我还没有测试过它,但这应该可以在 *nix 操作系统上运行。也许有人可以检查一下。

magick -size 120x120 -background none xc:none -alpha set -stroke none \
   -draw 'fill SpringGreen2 rectangle 0,100 120,120' \
   -draw 'fill SpringGreen3 roundrectangle 20,60 100,120 10,10' \
   -draw 'fill SpringGreen circle 60,40 60,65' \
   -channel RGBA -separate \
   \(  xc:white -bordercolor black -shave 6x6 -border 6x6 -blur 0x6 \
      -clone -1 -compose darken -composite -compose over \) \
   -delete -2 -combine result.png
© www.soinside.com 2019 - 2024. All rights reserved.