Benutzer-Werkzeuge

Webseiten-Werkzeuge


bilder_bearbeiten

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
bilder_bearbeiten [2023-04-22 17:55:44] – [Bilder bearbeiten] manfredbilder_bearbeiten [2023-04-22 17:55:56] (aktuell) – [Bilder bearbeiten] manfred
Zeile 1: Zeile 1:
 +====== Bilder bearbeiten ======
 +
 +Laut dem Test "//[[https://www.ctrl.blog/entry/webp-avif-comparison.html|Comparing AVIF vs WebP file sizes at the same DSSIM]]//" kann man gegenüber JPEG bei gleicher Bildqualität durchschnittlich mit WebP ca. 30% und mit AVIF ca. 50% am Plattenplatz sparen.
 +
 +
 +===== 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.
 +
 +Installation von ''exiftool'' (FreeBSD 13.0):
 +  > pkg install graphics/p5-Image-ExifTool
 +
 +alle EXIF-Informationen anzeigen:
 +  > exiftool -EXIF:ALL 1947_Cadillac_Fleetwood.jpg
 +
 +Ausrichtung eines Bildes auslesen:
 +  > exiftool -EXIF:Orientation 1947_Cadillac_Fleetwood.jpg
 +  Orientation                     : Horizontal (normal)
 +  
 +  > exiftool -EXIF:Orientation CZ85.jpg
 +  Orientation                     : Rotate 180
 +  
 +  > exiftool -EXIF:Orientation Regeln_fuer_das_Mensch_sein.jpg
 +  Orientation                     : Rotate 90 CW
 +
 +
 +==== /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 //[[dateiformate_konvertieren#in_ein_einheitsformat_bringen|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.
 +
 +<file bash /home/bin/bilder_resize.sh>
 +#!/bin/bash
 +
 +#------------------------------------------------------------------------------#
 +#
 +# Größe von Bildern ändern
 +#
 +#------------------------------------------------------------------------------#
 +
 +VERSION="v2020012701"
 +
 +if [ ! -r "${2}" ] ; then
 +        echo "${0} 720x540 [Bild.jpg]"
 +        echo "${0} 720x540 [Bild.jpg] [Bild.jpg]"
 +        echo "${0} 720x540 [Bild [Bild[...]]]"
 +        exit 0
 +fi
 +
 +NFORMAT="${1}"
 +shift   
 +
 +for DATEI in ${@}
 +do
 +        BILD="$(basename ${DATEI} | rev | awk '{sub("[.]"," ");print $2}' | rev)"
 +        OFORMAT="$(identify ${DATEI} | awk '{print $3}' || exit 1)"
 +        if [ -n "${OFORMAT}" ] ; then
 +
 +                echo "convert -size ${OFORMAT} ${DATEI} -resize ${NFORMAT} -background black -compose Copy -gravity center -extent ${NFORMAT} -quality 95 ${BILD}_${NFORMAT}.png"
 +
 +                convert -size ${OFORMAT} ${DATEI} -resize ${NFORMAT} -background black -compose Copy -gravity center -extent ${NFORMAT} -quality 95 ${BILD}_${NFORMAT}.png
 +                identify ${BILD}_${NFORMAT}.png
 +        fi
 +done
 +</file>
 +
 +  > time /home/bin/bilder_resize.sh 480x360 *.jpg
 +
 +
 +==== /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 720x576 Bildpunkten bekommt und die Bilder in einem DivX5 kompatiblem Format kodiert werden.
 +
 +  * [[http://www.mplayerhq.hu/DOCS/HTML/de/menc-feat-enc-images.html]]
 +
 +  #!/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
 +