ImageMagick으로 색상 반전


27

ImageMagick convert도구를 사용하여 이미지의 색상을 반전하여 검정이 흰색이되고 흰색이 검정이되도록하려면 어떻게합니까?

다시 말해, 나는 이것을 돌리고 싶다 :

기발한

이것으로 :

거꾸로

답변:


45

-negate옵션을 사용하십시오 :

convert input.png -channel RGB -negate output.png

-negate옵션은 각 픽셀을 보완 색상으로 바꿉니다. -channel RGB옵션 무효화되는 (있는 경우)에 알파 채널이 방지 ImageMagick이 7 필요하다. (이 통찰력에 대한 @yoya 감사합니다!)

또한 참조 문서 를 들어 -negate.


5
이것은 내 흑백 png를 완전히 투명하게 만들었습니다.
theonlygusti

이것은 나를 위해 일했다
shadi

2
투명도 문제는 알파 채널도 반전되기 때문입니다. -channel RGB -negate그것을 피하기 위해 사용하십시오 .
goto-bus-stop

1
그 흥미 롭군요. 내 시스템의 ImageMagick (버전 6.8.9)은 기본적으로 알파 채널이 아닌 RGB 채널 만 무효화하므로 -channel RGB필요하지 않습니다. 내가 통과하면 알파 채널 만 반전 -channel RGBA -negate됩니다. 다른 행동을 설명하는 것이 확실하지 않습니다.
Jo Liss

그것은 부정없이 나를 위해 작동합니다. 그래도 궁금한 점은 identify입력이 "8 비트 sRGB"로 표시 되는 반면 출력은 "8 비트 회색조 회색"입니다.
user74094 2018

3

ImageMagick 6.x는 -negate 옵션으로 만 색상 강도를 반전시킬 수 있습니다. 심판) 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에서 기본 활성 채널에 투명도 (불투명 / 알파)가 포함되어 있기 때문입니다

ImageMagick6: DefaultChannels = ((AllChannels | SyncChannels) &~ OpacityChannel)
ImageMagick7: DefaultChannels = AllChannels

대부분의 알고리즘은 빨강, 녹색, 파랑, 검정 (CMYK의 경우) 및 알파 채널을 업데이트합니다. -negate의 유용성은 전반적인 일관성을 위해 희생되는 것 같습니다.

더 자세한 정보. http://blog.awm.jp/2018/11/18/im7negate/


1
convert input.png -negate output.pngImageMagick 7.0.8 (ArchLinux)에서 나를 위해 잘 작동
msrd0

투명도가없는 RGB 이미지에는 문제가 없습니다. 투명도 이미지가있는 RGBA는 문제를 일으 킵니다.
yoya

PNG 파일의 투명도를 확인할 수 있습니다. identify -verbose input.png | grep Type TrueColor 또는 TrueColorAlpha를 출력합니다.
yoya

좋은 답변, 감사합니다! 나는 계속 -channel RGB해서 대답에 덧붙였다 .
Jo Liss
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.