In diesem Abschnitt wird nur beschrieben, wie man sich die Informationen anzeigen lässt, die als Metadaten in der Bilddatei gespeichert sind.
Es werden keine Veränderungen an der Bilddatei vorgenommen.
#!/bin/bash
DATEI="${1}"
if [ ! -r "${DATEI}" ] ; then
echo "${0} [Bilddatei.jpg]"
exit 0
fi
DATEI="${1}"
PHPBIN="$(which php)"
if [ -z "${PHPBIN}" ] ; then
echo "PHP ist nicht installiert..."
exit 1
fi
PHPANFANG='<?php $bild = '
PHPENDE='; $exif_data = exif_read_data ( $bild ); print_r($exif_data); ?>'
METADAT="$(echo "${PHPANFANG}'${DATEI}'${PHPENDE}" | ${PHPBIN})"
echo "${METADAT}"
PHP muss natürlich installiert sein! Alternativ geht das auch mit ImageMagic
#!/bin/bash
DATEI="${1}"
if [ ! -r "${DATEI}" ] ; then
echo "${0} [Bilddatei.jpg]"
exit 0
fi
DATEI="${1}"
PHPBIN="$(which php)"
if [ -z "${PHPBIN}" ] ; then
echo "PHP ist nicht installiert..."
exit 1
fi
PHPANFANG='<?php $bild = '
PHPENDE='; $info = getimagesize ( $bild ); print $info["0"] . "x" . $info["1"]; ?>'
ORFORMAT="$(echo "${PHPANFANG}'${DATEI}'${PHPENDE}" | ${PHPBIN} | egrep '[0-9][x][0-9]')"
echo "${ORFORMAT}"
Hiermit kann man sich die Uhrzeit anzeigen lassen, zu der das Bild aufgenommen wurde (Auslöserzeitpunkt).
#!/bin/bash
DATEI="${1}"
if [ ! -r "${DATEI}" ] ; then
echo "${0} [Bilddatei.jpg]"
exit 0
fi
PHPBIN="$(which php)"
if [ -z "${PHPBIN}" ] ; then
echo "PHP ist nicht installiert..."
exit 1
fi
PHPANFANG='<?php $bild = '
PHPENDE='; $exif_data = exif_read_data ( "$bild" ,'EXIF' ,0 ); echo $exif_data['DateTimeOriginal'] . "\n";?>'
ORIZEIT="$(echo "${PHPANFANG}'${DATEI}'${PHPENDE}" | ${PHPBIN})"
echo "${ORIZEIT}"
In diesem Abschnitt wird beschrieben, wie man bestimmte Veränderungen an den Bildern vornimmt.
#!/bin/bash
if [ -z "${2}" ] ; then
echo "${0} [Drehwinkel] [Bild [Bild[...]]]"
echo "${0} 90 [Bild [Bild[...]]]"
echo "${0} 180 [Bild [Bild[...]]]"
echo "${0} 270 [Bild [Bild[...]]]"
echo "${0} -90 [Bild [Bild[...]]]"
echo "${0} 132.5 [Bild [Bild[...]]]"
exit 0
fi
if [ -z "$(echo "${1}" | egrep '^[+-]*[0-9]+$|^[+-]*[0-9]+[.][0-9]*$')" ] ; then
echo "${0} [Drehwinkel] [Bild [Bild[...]]]"
echo "${0} 90 [Bild [Bild[...]]]"
echo "${0} 180 [Bild [Bild[...]]]"
echo "${0} 270 [Bild [Bild[...]]]"
echo "${0} -90 [Bild [Bild[...]]]"
echo "${0} 132.5 [Bild [Bild[...]]]"
exit 0
else
WINKEL="${1}"
shift
fi
IMGMAGC="$(which convert)"
if [ -z "${IMGMAGC}" ] ; then
echo "ImageMagic ist nicht installiert"
exit 1
fi
ZUFALLSWERT="$(head -c 1000 /dev/urandom | tr -cd '[:alnum:]' | cut -b-8)"
for i in ${@}
do
VERZ="$(dirname ${i})"
DATEI="$(basename ${i})"
#echo "convert -rotate ${WINKEL} ${i} ${VERZ}/${ZUFALLSWERT}_${DATEI} && mv -v ${VERZ}/${ZUFALLSWERT}_${DATEI} ${i}"
convert -rotate ${WINKEL} ${i} ${VERZ}/${ZUFALLSWERT}_${DATEI} && mv -v ${VERZ}/${ZUFALLSWERT}_${DATEI} ${i}
done
Mit diesem Script werden PNG-Bilder im PAL-Format erzeugt, um daraus einen Film oder eine Slideshow zu erstellen.
#!/bin/bash
NFORMAT="720x576" # neues Format
#------------------------------------------------------------------------------#
# for i in $(find /var/tmp/Bilder_von_David/*.jpg);do bash /var/tmp/test.sh ${i};done
if [ -z "${1}" ] ; then
echo "${0} [Bild.jpg]"
exit 0
else
BILD="$(basename ${1} | rev | awk '{sub("[.]"," ");print $2}' | rev)"
fi
OFORMAT="$(identify ${1} | awk '{print $3}' || exit 1)"
if [ -n "${OFORMAT}" ] ; then
convert -size ${OFORMAT} ${1} -resize ${NFORMAT} -background black -compose Copy -gravity center -extent ${NFORMAT} -quality 95 ${BILD}_${NFORMAT}.png
identify ${BILD}_${NFORMAT}.png
fi
Dieses Script wandelt alle Bilder, die im aktuellen Verzeichnis liegen in eine Video-Datei um.
Die Voreinstellungen sind so gewählt, dass der Film das PAL-Bildformat von 720×576 Bildpunkten bekommt und die Bilder in einem DivX5 kompatiblem Format kodiert werden.
#!/bin/bash
FPS="0.3" # Anzahl der Bilder pro Sekunde
# 0.1 bis 1 => Slideshow
# 15 bis 30 => Film
NEFORMAT="720x576" # neues Format
#------------------------------------------------------------------------------#
BILDENDG="png" # Zwischenbildformat
ZUFALLSWERT="$(head -c 1000 /dev/urandom | tr -cd '[:alnum:]' | cut -c-8)"
BILDER="$(ls ${@})"
echo "$(ls ${BILDER} | wc -l) Bilder wurden gefunden."
#------------------------------------------------------------------------------#
KONV="$(which convert)"
IDEN="$(which identify)"
if [ -z "${KONV}" -o -z "${IDEN}" ] ; then
echo "ImageMagic muss installiert sein!"
exit 1
fi
if [ -z "${BILDER}" ] ; then
echo "${0} *"
echo "${0} *.jpg"
echo "${0} 2002000000.jpg 2003080000.jpg 2003080006.jpg 2003101401.jpg"
exit 0
fi
#------------------------------------------------------------------------------#
NR="0"
for i in ${BILDER}
do
BILDBN="$(basename ${i} | rev | awk '{sub("[.]"," ");print $2}' | rev)"
OFORMAT="$(identify ${i} | awk '{print $3}' || exit 1)"
if [ -n "${OFORMAT}" ] ; then
NR="$(echo "${NR}" | awk '{printf("%.8u\n", 1+$1)}')"
convert -size ${OFORMAT} ${i} -resize ${NEFORMAT} -background black -compose Copy -gravity center -extent ${NEFORMAT} -quality 95 ${NR}_${BILDBN}_${NEFORMAT}_${ZUFALLSWERT}.${BILDENDG}
#identify ${NR}_${BILDBN}_${NEFORMAT}_${ZUFALLSWERT}.${BILDENDG}
ls -lh ${NR}_${BILDBN}_${NEFORMAT}_${ZUFALLSWERT}.${BILDENDG}
fi
done
################################################################################
# erste Datei wird überprüft
EDATEI="$(ls *_${NEFORMAT}_${ZUFALLSWERT}.${BILDENDG} | head -n1)"
if [ ! -r "${EDATEI}" ] ; then
echo "Die erste vorbereitete Bilddatei '${EDATEI}' ist nicht lesbar."
exit 1
fi
TYP="$(identify ${EDATEI} | awk '{print tolower($2)}' | egrep 'jpeg|png|tga|sgi')"
if [ -z "${TYP}" ] ; then
echo "Der Typ der ersten vorbereiteten Bilddatei '${EDATEI}' konnte nicht ermittelt werden."
exit 1
fi
FORMAT="$(identify ${EDATEI} | awk '{print tolower($3)}')"
if [ -z "${FORMAT}" ] ; then
echo "Der Typ der ersten vorbereiteten Bilddatei '${EDATEI}' konnte nicht ermittelt werden."
exit 1
fi
if [ "${NEFORMAT}" != "${FORMAT}" ] ; then
echo "Das Format der ersten vorbereiteten Bilddatei '${EDATEI}' stimmt nicht."
exit 1
fi
BREIT="$(echo ${FORMAT} | awk '{gsub("x"," ");print $1}')"
HOCH="$(echo ${FORMAT} | awk '{gsub("x"," ");print $2}')"
#------------------------------------------------------------------------------#
AUSBR="$(echo "${FORMAT} ${FAKTOR}" | awk '{gsub("x"," ");print $1 * $2 * $3}')"
mencoder -ovc lavc -lavcopts vcodec=mpeg4 mf://*_${NEFORMAT}_${ZUFALLSWERT}.${BILDENDG} -mf type=${TYP}:w=${BREIT}:h=${HOCH}:fps=${FPS} -nosound -o ${NEFORMAT}_${ZUFALLSWERT}.avi
rm -f *_${NEFORMAT}_${ZUFALLSWERT}.${BILDENDG}
ls -lh ${NEFORMAT}_${ZUFALLSWERT}.avi