This script only works with folders and it saves for example ~/Desktop/dir1/file1.png
to ~/Desktop/dir1_watermarked/file1.png
:
watermark=~/Dropbox/watermark.png
shopt -s nocasematch extglob
for dir; do
mkdir "$dir"_watermarked
for f in "$dir"/*.@(png|jpg|jpeg); do
size=$(/usr/local/bin/identify -format '%[fx:w/4,279]' "$f")
/usr/local/bin/composite -dissolve 10% -gravity SouthEast \
\( $watermark -geometry $size \) "$f" -quality 100 "$dir"_watermarked/"${f##*/}"
done
done