【问题标题】:Imagemagick convert -fill does not change edges from a particular palette areaImagemagick convert -fill 不会改变特定调色板区域的边缘
【发布时间】:2017-12-29 10:28:30
【问题描述】:

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

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

我得到下面的图像:

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

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

我们将非常感谢您的帮助。

【问题讨论】:

    标签: php ffmpeg imagemagick imagemagick-convert


    【解决方案1】:

    在 Imagemagick 中,您可以按照 Andy 的建议使用 -fuzz。但是你只能在它开始改变其他区域以及果岭之前增加模糊值。

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

    对于此图像,这里的 a fuzz 值尽可能大。但它的外面仍然有一些绿色。 (Unix 语法)

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

    为了进一步降低效果,您可以通过稍微模糊和逐渐变细(通过-level)来消除透明区域的边框的锯齿。

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 感谢您的回复。如果遇到我的情况,请给我完整的命令。正如我已经尝试过使用 -fuzz 但它给了我一些其他不相关的结果
      猜你喜欢
      • 2019-03-23
      • 1970-01-01
      • 2018-09-24
      • 1970-01-01
      • 1970-01-01
      • 2016-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多