Сначала создадим оверлей (image2.png), с 3 постепенно более светлыми оттенками серого, начиная с 80/255 слева, 128/255 в середине и 200/255 справа:
convert -size 200x438 xc:"gray(80,80,80)" xc:gray xc:"gray(200,200,200)" +append image2.png
Предполагается, что наше начальное изображение таково:
Теперь мы можем преобразовать точно средне-серый в полупрозрачный средне-серый и наложить так:
convert bean.jpg \( image2.png -fill "rgba(128,128,128,0.5)" -opaque gray \) -composite result.png
Или, если мы хотим повлиять и на серый (80), мы можем добавить некоторый пуш:
convert bean.jpg \( image2.png -fill "rgba(128,128,128,0.5)" -fuzz 20% -opaque gray \) -composite result.png
Обратите внимание, что в версии 7 ImageMagick команды изменились:
Version 6 | Version 7
=================================
identify | magick identify
convert | magick
mogrify | magick mogrify
composite | magick composite
montage | magick montage
compare | magick compare
animate | magick animate
stream | magick stream
Порядок параметров также более строгий, в пользу:
magick [settings] INPUT [settings] [operators] OUTPUT
над
convert [settings] [operators] INPUT [settings] [operators] OUTPUT
Я имею в виду, что вы должны загрузить изображение до применения к нему операторов, а не создавать список операторов, а затем загрузить изображение и надеяться ImageMagick помнит, что вы сказали вам хотел сделать, если вы загрузили что-нибудь.