Befehl | Praktische Beispiele |
---|---|
pnmscale Bilder scalieren |
Einzelne Datei auf 320 x 240 Pixel scalieren:
djpeg "original.jpg" | pnmscale -xysize 320 240 | cjpeg -qual 75 >"ziel.jpg"Foto einlesen | Breite und Höhe für Skalierung angeben | Komprimierungsfaktor wählen | Umleitung in Zieldatei. (Es können auch Dateipfade mit angegeben werden) Einzelne Datei auf die Hälfte ihrer Größe scalieren: djpeg "original.jpg" | pnmscale 0.5 | cjpeg -qual 75 >"ziel.jpg"Hier werden keine absoluten Werte wie "320" bzw. "240" angegeben, sondern der Skalierungsfaktor "0.5". Eine Datei mit 640 x 480 pt wird also umgerechnet zu 320 x 240 pt. Eine Datei mit 320 x 240 pt erhält jedoch die Größe von 160 x 120 pt. Es können auch beliebige andere Werte als Skalierungsfaktor benutzt werden, z.B. "0.25", um ein Viertel der Originalgröße zu erhalten. Dateien eines kompletten Unterzeichnisses scalieren: for f in *.jpg ; do djpeg $f | pnmscale 0.5 | cjpeg -qual 70 >320x240/$f ; doneHier werden alle JPG-Dateien eines Startverzeichnisses um die Hälfte verkleinert (skaliert), mit einem Komprimierungsfaktor von 70% berechnet (75 ist Standard) und die gewonnenen neuen Bilder in ein bestehendes Verzeichnis namens "320x240" kopiert. |
pnmcut Bilder beschneiden ![]() |
pnmcut schneidet aus Fotos bestimmte Bildbereiche aus. Wir gehen von einem Foto mit 640 pt Breite und 480 pt Höhe (VGA-Auflösung) aus und wollen jeweils ein Viertel des Bildes ausschneiden und speichern. Folgende Aufgaben sollen gelöst werden:
a) Linke obere Ecke ausschneiden, b) Linke untere Ecke ausschneiden. pnmcut x y width height [pnmfile] Das ganze Bild (640 breit, 480 hoch, links oben beginnen = ganzes Bild): pnmcut 0 0 640 480 djpeg "original.jpg" | pnmcut 0 0 640 480 | cjpeg -qual 70 >"ziel.jpg" Die linke Hälfte des Bildes (320 breit, 480 hoch, links oben beginnen = linke Hälfte): pnmcut 0 0 320 480 djpeg "original.jpg" | pnmcut 0 0 320 480 | cjpeg -qual 70 >"ziel.jpg" Die rechte Hälfte des Bildes (320 breit, 480 hoch; 0 von oben 320 von links beginnen = rechte Hälfte): pnmcut 320 0 320 480 djpeg "original.jpg" | pnmcut 320 0 320 480 | cjpeg -qual 70 >"ziel.jpg" Die obere Hälfte des Bildes (640 breit, 240 hoch; 0 von oben 0 von links beginnen = obere Hälfte): pnmcut 0 0 640 240 djpeg "original.jpg" | pnmcut 0 0 640 240 | cjpeg -qual 70 >"ziel.jpg" Und jetzt zu der Lösung der Aufgaben a) bis e): a) Linke obere Ecke ausschneiden (320 breit, 240 hoch; 0 von oben 0 von links beginnen = Bildviertel in linker oberer Ecke):pnmcut 0 0 320 240 djpeg "original.jpg" | pnmcut 0 0 320 240 | cjpeg -qual 70 >"ziel.jpg" b) Linke untere Ecke (320 breit, 240 hoch; 0 von oben 240 von links beginnen): pnmcut 0 240 320 240 djpeg "original.jpg" | pnmcut 0 240 320 240 | cjpeg -qual 70 >"ziel.jpg" c) Rechte obere Ecke (320 breit, 240 hoch; 320 von oben 0 von links beginnen): pnmcut 320 0 320 240 djpeg "original.jpg" | pnmcut 320 0 320 240 | cjpeg -qual 70 >"ziel.jpg" d) Rechte untere Ecke (320 breit, 240 hoch; 320 von oben, 240 von links beginnen: pnmcut 320 240 320 240 djpeg "original.jpg" | pnmcut 320 240 320 240 | cjpeg -qual 70 >"ziel.jpg" e) Bildmitte (neues Bild 320 breit, 240 hoch): pnmcut 160 120 320 240 djpeg "original.jpg" | pnmcut 160 120 320 240 | cjpeg -qual 70 >"ziel.jpg" f) Bildmitte (neues Bild 400 breit, 300 hoch): pnmcut 120 60 400 300 djpeg "original.jpg" | pnmcut 120 60 400 300 | cjpeg -qual 70 >"ziel.jpg" g) Bildmitte (neues Bild 520 breit, 390 hoch): pnmcut 60 30 520 390 djpeg "original.jpg" | pnmcut 60 30 520 390 | cjpeg -qual 70 >"ziel.jpg" h) Bildmitte (neues Bild 600 breit, 450 hoch): pnmcut 20 15 600 450 djpeg "original.jpg" | pnmcut 20 15 600 450 | cjpeg -qual 70 >"ziel.jpg" |
pnmflip Bilder drehen und spiegeln |
Praktische Beispiele:djpeg "original.jpg" | pnmflip -cw | cjpeg -qual 70 >"ziel.jpg"Originaldatei wird eingelesen, um 90 Grad gedreht und in eine neue Datei geschrieben. for f in *.jpg ; do djpeg $f | pnmflip -cw | cjpeg -qual 70 >320x240/$f ; doneEine beliebige Anzahl von Bildern im aktuellen Verzeichnis wird um 90 Grad gedreht und die Ergebnisse in einem Unterverzeichnis namens "320x240" mit einer Komprimierungsqualität von 70 % abgelegt. pnmflip macht Spiegelungen und 90° Drehungen: -lr links<->rechts -bt oben<->unten -ccw drehen nach links 90° -cw drehen nach rechts 90° -r180 drehen um 180° |
ppmtopgm in Schwarz-Weiß umrechnen |
Mehrfarbiges Bild in Schwarz-Weiß umrechnen:djpeg "original.jpg" | ppmtopgm | cjpeg -qual 70 >"ziel.jpg"Originaldatei einlesen | in Schwarz-Weiß umrechnen | Ergebnis als JPG speichern mit Komprimierungsfaktor 70 Ganzes Verzeichnis farbiger Bilder in Schwarz-Weiß umrechnen: for f in *.jpg ; do djpeg $f | ppmtopgm | cjpeg -qual 70 >sw/$f ; doneEine beliebige Anzahl von Bildern im aktuellen Verzeichnis in Schwarz-Weiß berechnen und die Ergebnisse in einem bestehenden Unterverzeichnis namens "sw" ablegen. |
pnmgamma Gammawert verändern |
Mit dem GAMMA-Wert lassen sich Bilder heller oder dunkler machen:..... | pnmgamma 0.0 | .... <-- macht GAAAANZ dunkel (Schwarz :-) ..... | pnmgamma 0.9 | .... <-- macht dunkler ..... | pnmgamma 1.0 | .... <-- lässt unverändert (ist Quatsch) ..... | pnmgamma 1.1 | .... <-- macht heller ..... | pnmgamma 1.2 | .... <-- macht noch heller ..... | pnmgamma 100 | .... <-- macht GAAAANZ hell (Weiß :-) Diese Erläuterung ist vom Wolf :-) Gammawert - Einzelbild heller: djpeg "quelle.jpg" | pnmgamma 1.2 | cjpeg -qual 70 >"ziel.jpg" Gammawert - Einzelbild dunkler: djpeg "quelle.jpg" | pnmgamma 0.8 | cjpeg -qual 70 >"ziel.jpg" Verschiedene GAMMAWERTE für eine Datei mit Script erzeugen: for gamma in 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 do djpeg BILD.jpg | pnmgamma $gamma | cjpeg >BILD-$gamma.jpg done Script-Idee vom Wolf :-) |
pnmsmooth Bilder weichzeichnen |
Breite und Höhe des Weichzeichner-Umfangs können angegeben werden, 3 ist Standard für beide Werte.
djpeg "original.jpg" | pnmsmooth -size 4 4 | cjpeg -qual 75 >"ziel.jpg"Ebenso können alle Bilder eines Verzeichnisses mit einem Schlag weichgezeichnet werden :-) |
cjpeg komprimiert JPGs |
Komprimiert irgendein Imagefile zu einem JPEG: Der Komprimierungsgrad beträgt standardmäßig 75 %, er kann beliebig angegeben werden. Je kleiner die Zahl ist, desto stärker komprimiert, je größer die Zahl, desto besser die Bildqualität und desto größer an kb die Datei (Beispiele siehe oben). |
djpeg dekomprimiert JPGs |
Dekomprimiert ein JPEG zu einem Imagefile: Sehr nützlich in Pipes (Beispiele siehe oben). |
rdjpgcom Textkommentare ausgeben |
Evtl. vorhandene Textkommentare in JPGs anzeigen: In JPGs können Textstrings enthalten sein, in denen z.B. der Fotograf seinen Namen, Emailadresse oder Copyright-Hinweis hinterlassen hat. "rdjpgcom" gibt solche Zeichenketten am Bildschirm aus. |
wrjpgcom Textkommentare eingeben |
JPGs mit Textkommentaren im Bild versehen: Textstrings können in eine JPEG-Datei eingefügt werden, um Informationen dort unterzubringen, die z.B. beim Archivieren der Bilder helfen können. |
pnmconvol "falten" |
Für den Mathematiker ;-) Mit "pnmconvol" kann man ein Bild mit einem zweiten Bild "falten". "Falten" ist eine mathematisch recht komplexe, aber sehr allgemeine Funktion, damit lässt sich ein "Schärfen", Weichzeichnen, Kanten hervorheben usw. bauen. |
jpegtran JPEG nach Imagefile |
Verlustlose Umwandlung von JPEG in Imagefile:jpegtran [ options ] [ filename ]Hier lohnt es sich, das Manual zu jpegtran zu lesen! Eine Datei kann verlustlos umgewandelt werden mit folgenden Parametern: -flip horizontal Mirror image horizontally (left-right). -flip vertical Mirror image vertically (top-bottom). -rotate 90 Rotate image 90 degrees clockwise. -rotate 180 |
![]() |
2002 © Sabine Rennwald