Image Magick сохраняет прозрачность

Я пытаюсь использовать Image Magick для создания нового большого png из нескольких маленьких png, но у меньшего изображения не сохраняется прозрачность. Я создаю изображение размером 6000x6000 и размещаю меньшие png в определенных местах, и некоторые из них поворачиваются, все это работает нормально. Проблема в том, что маленькие изображения не сохраняют свою прозрачность, когда некоторые из маленьких изображений перекрываются. Это пример того, что я имею в виду. Я пробовал несколько опций -channel и -alpha, но ничего не работает. Что мне здесь не хватает?

введите здесь описание изображения

Вот команды, которые я использую для своего теста.

convert -size 6000x6000 xc:none ^
    ( Rectangle_01.png -repage +200+200 ) ^
    ( Rectangle_01.png -repage +651+200 -rotate 45 ) ^
    ( Rectangle_01.png -repage +1102+200 -rotate -45 ) -flatten -alpha on test.png

person Trevor Orr    schedule 07.04.2014    source источник


Ответы (2)


Похожая тема есть на http://www.imagemagick.org.

"Пытаться:

-fuzz XX% -transparent white

где чем меньше %, тем ближе к истинному белому или, наоборот, чем больше %, тем большее отклонение от белого может стать прозрачным».

http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=12619

person almanegra    schedule 07.04.2014
comment
Наконец-то это заработало, изначально я прописал в своем скрипте так: -flatten -fuzz 10% -transparent white test.png и это не сработало. Вот что сработало: -fuzz 10% -прозрачный белый -flatten test.png. Мне пришлось поставить команду flatten последней, я не думал, что это имеет значение, но, видимо, это имеет значение. - person Trevor Orr; 08.04.2014
comment
Да, это так, потому что команда -flatten в основном завершает все операции, которые вы только что сделали, собирая все вместе :) с уважением - person almanegra; 08.04.2014

Ты пробовал:

-background none

none — одно из встроенных названий полностью прозрачного цвета.

Я нашел этот вопрос, когда пытался решить аналогичную проблему с командой montage, которая не сохраняла бы прозрачность. Установка прозрачного фона решила мою проблему. Фон по умолчанию в ImageMagick белый.

person François    schedule 17.11.2014
comment
Я отказался от метода изображения (png) и перестроил свое приложение, чтобы использовать вместо него svg, это было много работы, но теперь это дает мне гораздо больше возможностей и гибкости в моем приложении. - person Trevor Orr; 18.11.2014