【问题标题】:ImageMagick: Replace RGB channels with white, retain AlphaImageMagick:用白色替换 RGB 通道,保留 Alpha
【发布时间】:2019-12-17 00:25:42
【问题描述】:

我在 Affinity Designer 中创建了一个图像,该图像具有以下通道:

R、G 和 B:

阿尔法:

当我在其他地方(虚幻引擎)使用此图像时,由于 RGB 通道的黑色部分,我在形状边缘出现了小的黑色伪影。我需要的唯一重要信息是 Alpha 通道。

如何使用 ImageMagick 将 RGB 通道替换为白色,同时保留 Alpha 通道?

【问题讨论】:

    标签: image-processing imagemagick


    【解决方案1】:

    这是一个在 ImageMagick 中执行的简单方法:

    首先,由于您没有提供实际图像,因此我将从 rgb.png 和 alpha.png 重构它

    convert rgb.png alpha.png -alpha off -compose copy_opacity -composite image.png
    


    现在,要将 rgb 部分设为白色,只需执行以下操作:

    convert image.png -fill white -colorize 100 result.png
    


    现在看到 rgb 部分是全白的,我们这样做:

    identify -verbose result.png
    .
    .
    .
     Channel statistics:
        Pixels: 512
        Gray:
          min: 255  (1)
          max: 255 (1)
          mean: 255 (1)
          standard deviation: 0 (0)
          kurtosis: -4.9152e+52
          skewness: 9.375e+35
          entropy: 0
        Alpha:
          min: 0  (0)
          max: 255 (1)
          mean: 187.152 (0.733931)
          standard deviation: 109.252 (0.42844)
          kurtosis: -0.822401
          skewness: -1.05578
          entropy: 0.336307
    


    所以 rgb 分量是常数 255(白色),图像现在是带有 alpha 分量的白色。

    【讨论】:

      【解决方案2】:

      试试下面...

      magick \( input.png -fill white -draw 'color 0,0 reset' \) \
             \( input.png -alpha extract \) \
             -compose Copy_Alpha -composite \
             output.png
      

      我确信有更好的方法来完成上述操作。读取input.png 两次,提取alpha 通道有点多余。

      第一部分将所有 RGB 通道替换为白色,同时也清除了 alpha 通道。

      input.png -fill white -draw 'color 0,0 reset'
      

      第二部分抓取 alpha 通道。

      input.png -alpha extract
      

      最后,我们将提取的 alpha 值复制回白色图像的 alpha 通道。

      -compose Copy_Alpha -composite
      

      如果您使用 ImageMagick-6,请将 magick 替换为 convert,将 Copy_Alpha 替换为 Copy_Opacity

      祝你好运!

      【讨论】:

      • 感谢您的详细回答。这对我有用,但另一个答案也有效,而且更简单一些。
      猜你喜欢
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      • 2011-12-07
      • 1970-01-01
      • 2016-05-09
      • 2013-08-17
      • 2021-07-21
      • 1970-01-01
      相关资源
      最近更新 更多