Odpowiedzi:
Użyj -negate
opcji:
convert input.png -channel RGB -negate output.png
-negate
Opcja zastępuje każdy piksel z jego kolor uzupełniający. Ta -channel RGB
opcja jest niezbędna od ImageMagick 7, aby zapobiec zanegowaniu kanału alfa (jeśli jest obecny). (Dzięki @yoya za ten wgląd!)
Zobacz także dokumentację dotyczącą -negate
.
-channel RGB -negate
aby tego uniknąć.
-channel RGB
nie jest to konieczne. Odwraca kanał alfa tylko wtedy, gdy przejdę -channel RGBA -negate
. Nie jestem pewien, co tłumaczy inne zachowanie.
identify
widzi wejście jako „8-bitowy sRGB”, wyjście to „8-bitowy Skala Szarości”.
ImageMagick 6.x może odwracać intensywność kolorów tylko z opcją -negate. ref) https://www.imagemagick.org/script/command-line-options.php#negate
convert input.png -negate output.png
ImageMagick 7.x wymaga opcji -channel z opcją -negate. ref) https://imagemagick.org/script/porting.php#cli Zmienione opcje
convert input.png -channel RGB -negate output.png
Wynika to z tego, że domyślne aktywne kanały zawierają przezroczystość (nieprzezroczyste / alfa) w ImageMagick 7.x
ImageMagick6: DefaultChannels = ((AllChannels | SyncChannels) &~ OpacityChannel)
ImageMagick7: DefaultChannels = AllChannels
Większość algorytmów aktualizuje kanały czerwony, zielony, niebieski, czarny (dla CMYK) i alfa. Wydaje się, że użyteczność -negate została poświęcona dla ogólnej spójności.
Więcej szczegółów dla Ciebie. http://blog.awm.jp/2018/11/18/im7negate/
convert input.png -negate output.png
działa dobrze dla mnie na ImageMagick 7.0.8 (ArchLinux)
identify -verbose input.png | grep Type
Wypisuje TrueColor lub TrueColorAlpha.
-channel RGB
do swojej odpowiedzi.