Bilder verkleinern

Antworten
Nachricht
Autor
brum

Bilder verkleinern

#1 Beitrag von brum » 31. Mär 2011 17:43

Moderne Digitalkameras sind sehr hochauflösend.

Möchte man nun eine Reihe Fotos von dieser in den "Fotodruckautomat" einlesen, so würde der Vorgang in Originalgröße sehr viel Zeit beanspruchen.
Ähnliche Probleme ergeben sich, möchte man die Bilder per Mail versenden. Die meisten Postfächer sind im Volumina begrenzt.

Für solche Verkleinerung eignet sich sehr gut das Programm ImageMagick mit seiner Kommandozeilenanweisung "convert":

Code: Alles auswählen

 
$ mkdir transfer
$ for PIC in $(ls -1 *.JPG); do PIC2=`echo $PIC|cut -d. -f1`; convert  $PIC -verbose -filter Gaussian -resize 2048x2048 -density 300x300 transfer/$PIC2.res.jpg; done

 DSC00559.JPG=>transfer/DSC00559.res.jpg JPEG 4592x3056=>2048x1363 2048x1363+0+0 8-bit DirectClass 770KB 1.260u 0:01.270
 DSC00562.JPG=>transfer/DSC00562.res.jpg JPEG 4592x3056=>2048x1363 2048x1363+0+0 8-bit DirectClass 750KB 1.270u 0:01.280
 DSC00563.JPG=>transfer/DSC00563.res.jpg JPEG 4592x3056=>2048x1363 2048x1363+0+0 8-bit DirectClass 766KB 1.290u 0:01.290
Alle Bilder mit Endung JPG werden nach der Bearbeitung in das Verzeichnis transfer abgelegt. Die Bilder werden zu einer Auflösung von 300 dpi - das reicht für Kunstdruck - mit einer Pixelszal der längsten Seite von 2048 konvertiert.
Das Ergibt in der Praxis, mit dem Digitalkameraformat eine Bildgröße von 2048x1363 Pixel
Dieser Wert reicht. Mit diesem Werten lassen sich Bilder von 9x13 cm in guter Qualität in Auftrag geben.Die Größe des JPGs liegt im Mittelwert bei 750 kB.

- have a lot of fun -

brum

rest

#2 Beitrag von brum » 31. Mär 2011 17:47

Da ging was verloren:
Dieser Wert reicht... für eine Bldgröße von 9x13 in guter Qualität

Die 2 Anweisung ist eine Zeile.

gast

10x15

#3 Beitrag von gast » 31. Mär 2011 18:21

Hallo,

die so bearbeiten Bilder ergeben auch noch gut Qualität bei Belichtung auf 10x15.

http://www.janssen-wiegand.de/bild_date ... esung.html

Mr.frosch

#4 Beitrag von Mr.frosch » 14. Mai 2011 15:05

genau das was ich gesucht habe, allerdings sind meine Bilder trotzdem noch über 2 MB groß

Code: Alles auswählen

IMGP4044.JPG=>upload/IMGP4044.res.jpg JPEG 4672x3104=>2048x1361 2048x1361+0+0 8-bit DirectClass 2.425MB 1.920u 0:01.219
IMGP4045.JPG=>upload/IMGP4045.res.jpg JPEG 4672x3104=>2048x1361 2048x1361+0+0 8-bit DirectClass 2.425MB 1.930u 0:01.149
kann ich da noch irgend etwas anders machen?

LG

Benutzeravatar
Janka
Beiträge: 3573
Registriert: 11. Feb 2006 19:10

#5 Beitrag von Janka » 15. Mai 2011 8:34

Du kannst den Schalter "-quality 80%" benutzen, um die Kompression zu erhöhen.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

brum

Nachtrag

#6 Beitrag von brum » 21. Nov 2011 12:17

Hallo,

hatte gerade etwas Zeit und ein paar neue Bilder.
Darum habe ich ich den obigen Aufruf in ein Skript gepackt.
Die Bilder liegen im Home-Verzeichnis unter ~/Bilder/4resize/original und in diesem werden die bearbeiteten Biler in einem Ordner "skaliert" abgelegt.

Code: Alles auswählen

#!/bin/bash
# Alle Bilder innerhalb des Vereichnisses werden verkleinert und in einem neuen Verzeichnis abgelegt.

BILD_HOME=/home/`whoami`/Bilder/4resize/original
cd $BILD_HOME

SKAL_VERZ_HOME=/home/`whoami`/Bilder/4resize/original
SKAL_VERZ_NAME=skaliert

echo -e  "\033[1mKonvertiere alle jpg-Bilder des Verzeichnisses `pwd` \n\
zu 300dpi sowie 2048 Pixel Seitenwert und speichere diese im Ordner \033[32;1m$SKAL_VERZ_HOME/$SKAL_VERZ_NAME\033[0m"
echo " "

if [ -d $SKAL_VERZ_NAME ]; then
	echo "Verzeichnis $SKAL_VERZ_NAME vorhanden";
	else
	echo "Verzeichnis $SKAL_VERZ_NAME fehlt";
	mkdir $SKAL_VERZ_NAME

	if [ -d $SKAL_VERZ_NAME ]; then
               echo "Ordner $SKAL_VERZ_NAME erfolgreich erstellt";
        else
               echo "keine Schreibrechte in `pwd`";
               exit 1
        fi
fi
echo " "

for PIC in $(ls -1 *.JPG & ls -1 *.jpg); 
  do PIC2=`echo $PIC|cut -d. -f1`; 
    convert  $PIC -verbose -filter Gaussian -resize 2048x2048 -density 300x300 -quality 80% ./$SKAL_VERZ_NAME/$PIC2.res.jpg; 
done 
echo " "
echo " "

NB=`ls -1 $SKAL_VERZ_HOME/$SKAL_VERZ_NAME/|grep res|wc -l`
echo "Es wurden folgende $NB Bilder konvertiert:"
echo " "
ls -lh $SKAL_VERZ_HOME/$SKAL_VERZ_NAME/|grep res|cut -d" " -f5,8
echo " "
echo -e "\033[1mFertig, drücke eine Eingabe-Taste zum Beenden...\033[0m"
read -n 1 -s
So finde ih dieses immer wieder ;)

Gruß brum

Antworten