Как связать две команды Imagemagick - PullRequest
1 голос
/ 08 июля 2019

У меня есть две зависимые команды imagemagick, которые хорошо работают сами по себе, но попробовав все мыслимые вызовы, я не могу объединить их, чтобы работать как одна.Я был бы очень признателен, если бы кто-то мог указать мне правильное направление.

Я попробовал различные методы, чтобы объединить эти два, используя онлайн-ресурсы в качестве руководства, но, как обычно, я не могу найти точныйпример, чтобы соответствовать моим потребностям.Я работаю на IM6 * (мой сервер также на IM6 *)

Первая команда берет миниатюру обрезки изображения по центру, а затем делает его круглым.

convert -define jpeg:size=200x200 face.png \
-thumbnail 31x31^ -gravity center -extent 31x31 \
\( +clone -threshold -1 -negate -fill white -draw 'circle 15,12 12,0' \) \
-alpha off -compose copy_opacity -composite cut_to_fit_circ.png


Вторая команда берет приведенный выше вывод и «выравнивает» его на другом изображении

convert marker.svg -page -1+2 cut_to_fit_circ.png \
-flatten facemarker.jpg

В итоге я должен получить изображение svg с круглым изображением поверх маркера.svg

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

Разобрался. Из сглаживания перешел на композитный, и просто нужно было найти правильное место для настройки геометрии. Без геометрии круглое изображение помещается в центр marker.png (svg), поэтому мне пришлось применить другой параметр, чтобы правильно расположить его:

convert marker.png \( -define jpeg:size=200x200 face.png \
 -thumbnail 31x31^ -gravity center -extent 31x31 \( +clone \
 -threshold -1 -negate -fill white -draw 'circle 15,12 12,0' \) \
 -alpha off -compose copy_opacity -composite \) -geometry +0-7 \
 -compose over -composite facemarker.png

Нашли решение, более или менее, с помощью кнопки на форуме форума вопрос !

0 голосов
/ 08 июля 2019

Попробуйте это ImageMagick 6.

convert marker.svg -page -1+2 \
\( -define jpeg:size=200x200 face.png \
-thumbnail 31x31^ -gravity center -extent 31x31 \
\( +clone -threshold -1 -negate -fill white -draw 'circle 15,12 12,0' \) \
-alpha off -compose copy_opacity -composite \) \
-flatten facemarker.jpg


Если это не сработает, разместите ссылки на ваши face.png и marker.svg, чтобы я мог просмотреть эти файлы и использовать их для тестирования.

Кроме того, почему эта страница всего на пару пикселей?

ИСПРАВЛЕНИЕ:

Проблема в том, что -compose copy_opacity перетекает в -flatten. Таким образом, вы должны сбросить, чтобы составить перед выравниванием. Исправленная команда будет.

convert -background none marker.svg \
\( -page +0+0 -define jpeg:size=200x200 face.png \
-thumbnail 31x31^ -gravity center -extent 31x31 \
\( +clone -threshold -1 -negate -fill white -draw 'circle 15,12 12,0' \) \
-alpha off -compose copy_opacity -composite \) \
-compose over -flatten facemarker.png


enter image description here

Отрегулируйте смещения страницы по желанию

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