批量水印使用iamgeMagick(mogrify或转换)水平和垂直的不同水印?

时间:2014-07-10 10:50:33

标签: image-processing imagemagick watermark imagemagick-convert mogrify

如何在不同的图像(水平和垂直)上大量应用不同的水印(水平和垂直)。

我有像这样的hudreds PNG的文件夹树(例如):

modern
classic
balance

我有两个水印:

watermark-horizontal.png
watermark-vertical.png

如何在水平照片上应用水平水印,在垂直照片上应用垂直水印。

我可以为这样的单张照片做到:

convert watermark-horizonal.png some-horizontal.png result.png

如何为许多人做同样的事情?

1 个答案:

答案 0 :(得分:2)

像这样:

#!/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