Пакетный водяной знак с использованием iamgeMagick (mogrify или convert) различного водяного знака для горизонтального и вертикального?
Как можно массово нанести разные водяные знаки (горизонтальные и вертикальные) на разные изображения (горизонтальные и вертикальные).
У меня есть дерево папок с PNG Hudreds, как это (как пример):
modern
classic
balance
У меня есть два водяных знака:
watermark-horizontal.png
watermark-vertical.png
Как я могу применить горизонтальный водяной знак на горизонтальных фотографиях и вертикальный водяной знак на вертикальных фотографиях.
Я могу сделать это для одного фото, как это:
convert watermark-horizonal.png some-horizontal.png result.png
Как сделать то же самое для многих?
1 ответ
Решение
Как это:
#!/bin/bash
for f in *.png
do
read w h <<< $(convert "$f" -ping -format "%w %h" info: )
if [ $w -gt $h ]; then
echo "$f is $h tall and $w wide (landscape)"
convert watermark-horizonal.png "$f" "wm-$f"
else
echo "$f is $h tall and $w wide (portrait)"
convert watermark-vertical.png "$f" "wm-$f"
fi
сделанный
Если вы хотите сделать рекурсию, вы можете сделать это:
#!/bin/bash
find . -name "*.png" -print0 | while read -d $'\0' f
do
read w h <<< $(convert "$f" -ping -format "%w %h" info: )
if [ $w -gt $h ]; then
echo "$f is $h tall and $w wide (landscape)"
else
echo "$f is $h tall and $w wide (portrait)"
fi
сделанный
Сохранить в файл с именем go
, затем введите следующее в Терминале
chmod +x go # Do this just ONCE to make script executable
./go # Do this any number of times to run it
Кстати, я использую следующую команду для моего водяного знака:
composite -dissolve 50% -resize "1x1<" -gravity center copyright.png x.png x.png