Imagemagick convert -fill不会更改特定调色板区域的边缘

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

当我尝试使用以下命令从此图像中删除Green (#09f80c)颜色时

magick convert images/img001.png - fill transparent -opaque #09f80c images/tp.png

我在下面的图像:

我得到的这张图片作为上述命令的输出。此图像边缘仍有一些绿点。如何完全删除它们?

我希望转换后的图像没有那些额外的像素。

非常感谢您的帮助。

php ffmpeg imagemagick imagemagick-convert
2个回答
3
投票

在Imagemagick中,你可以像Andy建议的那样使用-fuzz。但是,在开始更改其他区域以及绿色之前,您只能增加模糊值。

首先测量颜色尽可能接近。我得到#2FF81D

这是关于此图像尽可能大的模糊值。但它外面还有一些绿色。 (Unix语法)

convert green.jpg -fuzz 35% -transparent "#2FF81D" green_trans1.png

enter image description here

为了进一步降低效果,您可以通过模糊一点并逐渐变细(通过-level)来消除透明区域的边界。

convert green.jpg -fuzz 35% -transparent "#2FF81D" -channel a -blur 0x3 -level 50x100% +channel green_trans2.png

enter image description here


0
投票

也许你应该尝试-fuzz参数,例如-fuzz 40%

我在这里的文档中找到了这个:

http://www.imagemagick.org/Usage/color_basics/#replace

© www.soinside.com 2019 - 2024. All rights reserved.