Я пытаюсь сделать эффект градиентного смешивания двух изображений (или более).
Но проблема в том, что мои изображения имеют прозрачность.
Я хочу смешать эти две картинки так, чтобы красная была слева, а синяя справа, с эффектом градиентного смешивания.
До сих пор я применял маску градиента к синему, например:
Синяя маска изображения
… и положи его поверх красного. Это прекрасно работает для фотографий, но когда изображения имеют прозрачность, я получил это:
Итак, здесь мы можем видеть градиентное смешивание синего изображения, но мы можем видеть красное через прозрачную синюю рамку. 🙁
Я не могу найти решение для создания хорошего эффекта градиентного смешения, который работает на прозрачных изображениях. Я использую imagemagick (с PHP), но я не могу найти решение даже в Gimp или Photoshop …
Вы знаете хороший способ сделать это?
Спасибо !
Вы знаете хороший способ сделать это?
Я бы предложил изолировать альфа-каналы от базового изображения, а затем объединить два изображения с маской.
# Disable alpha channel, and composite without alpha
convert red.png -alpha off red_base.png
convert blue.png -alpha off blue_base.png
convert blue_base.png black_mask.png -alpha Off \
-compose CopyOpacity -composite \
red_base.png -compose DstOver -composite base_out.png
Повторите с извлеченным альфа-каналом.
convert red.png -alpha extract red_mask.png
convert blue.png -alpha extract blue_mask.png
convert blue_mask.png black_mask.png -alpha Off \
-compose CopyOpacity -composite \
red_mask.png -compose DstOver -composite mask_out.png
И, наконец, примените сгенерированную маску в качестве нового альфа-канала.
convert base_out.png mask_out.png -alpha Off \
-compose CopyOpacity -composite output.png
Других решений пока нет …