0

Я не знаю, с чего начать. Я пытаюсь сделать что-то, что, по моему мнению, было бы относительно просто выполнить с помощью imagemagick, но я не знаю точной команды, с которой можно начать. Мне нужно нарисовать линию через изображение, а затем сделать все над строкой прозрачным на изображении и сделать все под строкой, изображение orignal. Какой был бы лучший способ сделать это с помощью imagemagick?Сделать половину изображения прозрачным из командной строки

Итак, на что я пришел сейчас, это обрезать изображение, а затем изменить его размер до первоначального размера, но с прозрачным фоном. Команда, которую я использую, это, но она всегда выходит черным цветом. Я не понимаю, почему.

convert -background none -gravity south out.png -resize 400x200 -extent 400x400 result.png

Спасибо за все помощь!

+0

попробуйте добавить альфа-канал с его максимальными значениями для непрозрачности и половиной этого значения для полупрозрачности. добавив, что альфа-канал может быть достигнут путем преобразования изображения в RGBA. – user236012

+0

@ user236012 Это не совсем то, что я собирался. Мне действительно нужно, чтобы нижняя половина изображения была на 100% непрозрачной, а верхняя половина - на 100% прозрачной. –

+0

Вам нужно добавить маску. Я не могу проверить на данный момент, но это должно дать вам некоторую идею: https://www.imagemagick.org/Usage/photos/#overlap – Bonzo

ответ

5

Вот довольно простой способ сделать это. Во-первых, включите альфа-канал, если у вашего изображения нет его, затем выберите альфа-канал для изменения следующей командой -fx. Там, если текущий j больше половины высоты изображения, сделайте альфа-слой непрозрачным, еще прозрачным. Легче, чем это звучит!

Таким образом, используя этот стартовый файл:

enter image description here

convert bean.jpg -alpha on -channel A -fx "j>h/2?1:0" result.gif 

enter image description here

Или, другой путь:

convert bean.jpg -alpha on -channel A -fx "j<h/2?1:0" result.gif 

enter image description here

Или другой, другой путь:

convert bean.jpg -alpha on -channel A -fx "i<w/2?1:0" result.gif 

enter image description here

Или, если вы чувствуете себя особенно глупо утром в пятницу ...

convert bean.jpg -alpha on -channel A -fx "hypot(i,j)/400-0.8" result.gif 

enter image description here

+0

Удивительно! Спасибо! –