18

Как инвертировать цвета изображения с помощью инструмента convert ImageMagick, чтобы черный стал белым, а белый стал черным?

Другими словами, я хочу включить это:

оригинал

в это:

перевернутый

2 ответа2

24

Используйте опцию -negate :

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

Опция -negate заменяет каждый пиксель своим дополнительным цветом. Параметр -channel RGB необходим в ImageMagick 7 для предотвращения отрицания альфа-канала (если имеется). (Спасибо @yoya за это понимание!)

Смотрите также документацию для -negate .

1

ImageMagick 6.x может инвертировать интенсивность цвета только с опцией -negate. ref) https://www.imagemagick.org/script/command-line-options.php#negate

convert input.png -negate output.png

Для ImageMagick 7.x требуется параметр -channel с параметром -negate. 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/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .