Bilder bearbeiten

Bildinformationen: Metadaten / EXIF

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.

/home/bin/bild_alle_metadaten_zeigen.sh

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

/home/bin/bildformat_zeigen.sh

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}"

/home/bin/bildaufnahmezeit_zeigen.sh

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}"

Bild verändern

In diesem Abschnitt wird beschrieben, wie man bestimmte Veränderungen an den Bildern vornimmt.

/home/bin/bild_drehen.sh

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

/home/bin/bilder_resize.sh

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

/home/bin/bilder_bewegen.sh

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
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki