Answers:
使用-negate
选项:
convert input.png -channel RGB -negate output.png
该-negate
选项将每个像素替换为其互补色。从-channel RGB
ImageMagick 7开始,该选项是必需的,以防止否定Alpha通道(如果存在)。(感谢@yoya的见解!)
又见文档的-negate
。
-channel RGB -negate
避免这种情况。
-channel RGB
没有必要。如果我通过,它只会反转alpha通道-channel RGBA -negate
。我不确定是什么解释了不同的行为。
identify
将输入视为“ 8位sRGB”,但输出却是“ 8位灰度灰度”。
ImageMagick 6.x只能使用-negate选项反转颜色强度。ref)https://www.imagemagick.org/script/command-line-options.php#negate
convert input.png -negate output.png
ImageMagick 7.x需要带有-negate的-channel选项。ref)https://imagemagick.org/script/porting.php#cli更改的选项
convert input.png -channel RGB -negate output.png
这是因为默认的活动通道在ImageMagick 7.x中包含透明度(不透明/ alpha)
ImageMagick6: DefaultChannels = ((AllChannels | SyncChannels) &~ OpacityChannel)
ImageMagick7: DefaultChannels = AllChannels
大多数算法会更新红色,绿色,蓝色,黑色(对于CMYK)和alpha通道。-negate的可用性似乎为整体一致性而牺牲。
convert input.png -negate output.png
在ImageMagick 7.0.8(ArchLinux)上对我工作正常
identify -verbose input.png | grep Type
输出TrueColor或TrueColorAlpha。
-channel RGB
到答案中。