#!/bin/bash
# Skrypt watermark umieszczający na wskazanym obrazie znak wodny
# i zapisujący nowy obraz pod nazwą nazwa_pliku+zw.

wmfile="/tmp/watermark.$$.png"
fontsize="44"   # Ta wartość powinna być określana za pomocą argumentu.

trap "`which rm` -f $wmfile" 0 1 15    # Po zakończeniu skryptu nie mogą
                                       # pozostać pliki tymczasowe.

if [ $# -ne 2 ] ; then
  echo "Użycie: $(basename $0) plik_obrazu "tekst znaku wodnego"" >&2 ; exit 1
fi

if [ ! -r "$1" ] ; then
  echo "$(basename $0): nie można odczytać obrazu $1." >&2 ; exit 1
fi

# Najpierw odczytujemy wymiary obrazu.
dimensions="$(identify -format "%G" "$1")"

# Teraz tworzymy tymczasowy obraz znaku.
convert -size $dimensions xc:none -pointsize $fontsize -gravity south \
  -draw "fill black text 1,1 '$2' text 0,0 '$2' fill white text 2,2 '$2'" \
  $wmfile

# echo "Utworzony obraz znaku wodnego o wymiarach $dimensions."

# Teraz łączymy znak wodny z oryginalnym obrazem.
suffix="$(echo $1 | rev | cut -d. -f1 | rev)"
prefix="$(echo $1 | rev | cut -d. -f2- | rev)"

newfilename="$prefix+zw.$suffix"
composite -dissolve 75% -gravity south $wmfile "$1" "$newfilename"

echo "Utworzony obraz $newfilename ze znakiem wodnym."

exit 0
