Imagemagick: применить вырезанную область к другому изображению - PullRequest
1 голос
/ 28 марта 2019

У меня есть изображение PNG с прозрачным фоном, но содержимое непрозрачно.Прозрачная секция - это маска, которую я хотел бы применить к другому изображению PNG, чтобы они имели идентичные прозрачные секции, но могут отличаться в непрозрачной секции.

Я пробовал

convert mask.png image.png -composite mask.png -compose copyopacity -composite image.png

но это, кажется, меняет непрозрачный раздел в image.png.

1 Ответ

2 голосов
/ 28 марта 2019

В Imagemagick, предполагая, что два изображения имеют одинаковый размер, затем попробуйте

(синтаксис Unix)

convert \
opaque_image.png \
\( transparent_image.png -alpha extract \) \
-alpha off -compose copy_opacity -composite \
result.png


(синтаксис Windows)

convert ^
opaque_image.png ^
( transparent_image.png -alpha extract ) ^
-alpha off -compose copy_opacity -composite ^
result.png

Возможно, у вашего прозрачного изображения нет двоичного альфа-канала.Например, значения альфа могут быть 0 (полностью прозрачными) в областях, которые вы хотите удалить, но, скажем, только 80% в областях, которые вы хотите сохранить.В этом случае он изменит непрозрачные области, которые вы хотите сохранить.Одним из решений будет пороговое значение маски перед наложением ее на непрозрачное изображение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...