#!/usr/bin/env bash # # Dieses Skript skaliert alle Bilder, die im aktuellen Verzeichnis liegen, # in eine andere Größe. # Es werden die Ausgabedateien im PNG-Format abgelegt. # VERSION="v2013082101" #------------------------------------------------------------------------------# while [ "${#}" -ne "0" ]; do case "${1}" in -b) unset HOEHE BREITE=${2} shift ;; -h) HOEHE=${2} unset BREITE shift ;; -d) DENSITY=${2} shift ;; *) if [ "$(echo "${1}"|egrep '^-')" ] ; then echo "Der Parameter '${1}' wird nicht unterstuetzt!" fi shift ;; esac done #------------------------------------------------------------------------------# if [ -n "${BREITE}" ] ; then echo "alle Bilder sollen eine einheitliche Breite von ${BREITE} Pixel haben" neuesformat() { ZIELFORMAT="$(echo "${BB} ${BH} ${BREITE}" | awk '{print $3"x"$2*$3/$1}')" } elif [ -n "${HOEHE}" ] ; then echo "alle Bilder sollen eine einheitliche Hoehe von ${HOEHE} Pixel haben" neuesformat() { ZIELFORMAT="$(echo "${BB} ${BH} ${HOEHE}" | awk '{print $1*$3/$2"x"$3}')" } else echo " wenn alle Bilder eine einheitliche Breite haben sollen: ${0} -b 1024 wenn alle Bilder eine einheitliche Hoehe haben sollen: ${0} -h 1080 es kann auch die Bildpunktdichte mit angegeben werden: ${0} -d 72x72 -h 1080 ${0} -d 96x96 -h 1080 ${0} -d 150x150 -h 1080 ${0} -d 300x300 -h 1080 " exit 0 fi if [ -z "${DENSITY}" ] ; then DENSITY="72x72" #DENSITY="300x300" fi #------------------------------------------------------------------------------# ### https://www.heins.info/wiki/doku.php?id=dateiformate_konvertieren#mit_imagemagick # convert -density 300x300 original.ps -resize 595x842 ergebnis.png wandeln() { # identify DSCI0001.JPG # DSCI0001.JPG JPEG 4320x3240 4320x3240+0+0 8-bit sRGB 5.433MB 0.000u 0:00.007 BB="$(identify ${1} | awk '{print $3}' | awk -F'x' '{print $1}')" BH="$(identify ${1} | awk '{print $3}' | awk -F'x' '{print $2}')" if [ -n "${BB}" -a -n "${BH}" ] ; then neuesformat ${DATEINAME} echo "${1} -> ${1}_-_${ZIELFORMAT}.png" convert -density ${DENSITY} ${1} -resize ${ZIELFORMAT} ${1}_-_${ZIELFORMAT}.png fi } #------------------------------------------------------------------------------# for DATEINAME in $(ls) do if [ -f ${DATEINAME} ] ; then wandeln ${DATEINAME} fi done