Пакетный водяной знак с использованием 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
Другие вопросы по тегам