Skalieren
pnmscale
Schneiden
pnmcut
Drehen u. Spiegeln
pnmflip
Gammawert
pnmgamma
Falten
pnmconvol
Weichzeichnen
pnmsmooth
Schwarz-Weiß
ppmtopgm
Komprimieren
cjpeg
Dekomprimieren
djpeg
Text ausgeben
rdjpgcom
Text eingeben
wrjpgcom
 

Bildbearbeitung auf Kommandozeilenebene

Die einzelnen Befehle der netpbm- und
anderer Bildbearbeitungstools unter Unix

zurück zum Inhaltsverzeichnis

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 ; done
Hier 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
Bildteile ausschneiden mit pnmcut
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.
c) Rechte obere Ecke ausschneiden, d) Rechte untere Ecke ausschneiden.
e) Bildmitte ausschneiden, neues Bild soll 320 x 240 Pixel haben.
f) Bildmitte ausschneiden, neues Bild soll 400 x 300 Pixel haben.

Überlege dir, wie groß der Abschnitt ist, den Du haben willst. Dessen Breite und Höhe in Pixel sind die Parameter width und height. Als Zweites bestimme den Abstand des Abschnittes vom linken Rand (x) und vom oberen Rand (y).
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 ; done
Eine 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 ; done
Eine 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
 
Valid HTML 4.0! Valid CSS!    nach oben nach oben

2002 © Sabine Rennwald