使用 ImageMagick 反转颜色

Jo *_*iss 56 imagemagick

如何使用 ImageMagickconvert工具反转图像的颜色,使黑色变为白色,白色变为黑色?

换句话说,我想把这个:

原来的

进入这个:

倒

Jo *_*iss 88

使用-negate选项:

convert input.png -channel RGB -negate output.png
Run Code Online (Sandbox Code Playgroud)

-negate选项用补色替换每个像素。从-channel RGBImageMagick 7 开始,该选项是必要的,以防止 alpha 通道(如果存在)被否定。(感谢@yoya 的洞察力!)

又见文档-negate

  • 这使我的黑白 png 完全透明... (6认同)
  • 透明度问题是因为 alpha 通道也被反转了。使用`-channel RGB -negate` 来避免这种情况。 (4认同)

小智 10

ImageMagick 6.x 只能使用 -negate 选项反转颜色强度。参考)https://www.imagemagick.org/script/command-line-options.php#negate

convert input.png -negate output.png
Run Code Online (Sandbox Code Playgroud)

ImageMagick 7.x 需要 -channel 选项和 -negate。ref) https://imagemagick.org/script/porting.php#cli更改选项

convert input.png -channel RGB -negate output.png
Run Code Online (Sandbox Code Playgroud)

这是因为默认的活动通道在 ImageMagick 7.x 中包含透明度(不透明/alpha)

ImageMagick6: DefaultChannels = ((AllChannels | SyncChannels) &~ OpacityChannel)
ImageMagick7: DefaultChannels = AllChannels
Run Code Online (Sandbox Code Playgroud)

大多数算法更新红色、绿色、蓝色、黑色(对于 CMYK)和 Alpha 通道。-negate 的可用性似乎牺牲了整体一致性。

为您提供更多详细信息。http://blog.awm.jp/2018/11/18/im7negate/

  • `convert input.png -negate output.png` 在 ImageMagick 7.0.8 (ArchLinux) 上对我来说很好用 (2认同)