Wasserzeichen

Bezeichnung

watermark - Bilder mit einem Wasserzeichen versehen

Übersicht

watermark [OPTION]… BILD…

Beschreibung

In der Konfigurationsdatei ${HOME}/.config/watermark/watermark.cfg können die Standardwerte überschrieben werden.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
-e Wahl des Formates des erzeugten Wasserzeichens
   über die Dateiendung
-n Name des erzeugten Wasserzeichens
-o Ausgabepfad
-p Position des Wasserzeichens im Bild
   Folgende Optionen sind möglich:
      NorthWest, North, NorthEast, West, Center,
      East, SouthWest, South, SouthEast
   Standardwert: Center
-t Transparenz des Wasserzeichens zwischen 0 und 1
   Standardwert: 0.15
-w Pfad zum Wasserzeichen</pre>

Abhängigkeiten

imagemagick

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
config="${HOME}/.config/watermark"
usage() { echo "Usage: $0 [-e <jpeg|jpg|png>] [-n <watermark output name>] [-o <output path>] [-p <watermark position>] [-t <transparency>] [-w <watermark path>] picture [picture [...]]" 1>&2; exit 1; }
if [[ ! -d "$config" ]]; then
	mkdir -p "$config"
	touch "$config/watermark.cfg"
fi
resultpath="watermark"
watermarkname="watermark"
watermarkextension="png"
transparency="0.15"
position="center"
source "$config/watermark.cfg"
while getopts ":e:n⭕p:t:w:" opt; do
  case $opt in
    e) watermarkextension="${OPTARG}";;
    n) watermarkname="${OPTARG}";;
    o) resultpath="${OPTARG}";;
    p) position="${OPTARG}";;
    t) transparency="${OPTARG}";;
    w) watermark="${OPTARG}";;
    \?) echo "Invalid option: -$OPTARG"; usage; >&2; exit 1;;
    :) echo "Option -$OPTARG requires an argument." >&2; exit 1;;
  esac
done
shift $((OPTIND-1))
if [[ -z "${watermark}" ]]; then
  echo "A watermark must be specified."; usage;
fi
mkdir -p "${resultpath}"
for image in "$@"
do
  imagewidth=$(identify -format "%[fx:w]" "${image}")
  imageheight=$(identify -format "%[fx:h]" "${image}")
  watermarkpath="${resultpath}/${watermarkname}_${imagewidth}_${imageheight}.${watermarkextension}"
  if [[ ! -s ${watermarkpath} ]]; then
    convert -resize "${imagewidth}x${imageheight}" -alpha set -background none -channel A -evaluate multiply "$transparency" +channel "${watermark}" "${watermarkpath}"
  fi;
  composite -gravity "${position}" "${watermarkpath}" "${image}" "${resultpath}/${image##*/}"
done
Zurück
Weiter