logoOL.gif
user_gelb_schwarz_or.gif
logoUL.gif
logoUR.gif claim.gif
LinuxUser LinuxCommunity EasyLinux Linux-Magazin International
      Anzeige
TFT Monitor bei Mercateo kaufen.
Neues Netbook? Ein Preisvergleich lohnt sich.
Bei uns finden sie Notebooks, PDAs und Drucker mit Testberichten und Tipps.
Diamant Buchhaltungssoftware – transparent und detailliert auch für die Konzernbuchhaltung.
Günstige Shareware Programme als direkte Downloads im Software Portal.
Bis zu 70% sparen durch Preisvergleich.
      Anzeige

Erschienen in LinuxUser 10/2000

Grafiken schnell passend gemacht

ImageMagick's convert

von Hans-Georg Eßer


Sei es für die Verwendung innerhalb von Web-Seiten oder andere Zwecke: Häufig müssen Grafiken von einem Format in ein anderes konvertiert und dabei noch in Größe und Qualität verändert werden. Mit convert aus dem ImageMagick-Paket machen Sie das schnell auf der Kommandozeile.

Die einfachste Funktion von convert ist die Konvertierung zwischen verschiedenen Bildformaten; dabei geben Sie einfach die Namen von Ursprungs- und Zieldatei an - convert erkennt an der Dateiendung das richtige Format. Um etwa ein Bild vom Jpeg- ins GIF-Format umzuwandeln, geben Sie

convert mohrhuhn.jpg mohrhuhn.gif
ein. Die Liste der convert bekannten Formate ist übrigens erstaunlich lang. Wenn das Programm die Endung der Bilddatei nicht versteht, erwartet es vielleicht eine leicht andere Endung. Rufen Sie in diesem Fall die man-Seite zu convert mit
man convert
auf und suchen Sie dort nach dem gewünschten Dateityp. Jeder der Dateitypen besitzt eine eindeutige Kennzeichnung wie z. B. "BMP" für Microsoft Windows Bitmaps oder "JPEG" für das im Internet häufig verwendete Jpeg-Format. Die Plus-Zeichen ("+"), die hinter einigen dieser Kürzel stehen, sind zu ignorieren.

Um nun ein Bild in die Jpeg-Datei mit dem ungewöhnlichen Namen test.bild zu konvertieren, können Sie den Aufruf

convert mohrhuhn.jpg JPEG:test.bild
verwenden. Durch Voranstellen des "JPEG:" ist convert klar, was zu tun ist, obwohl die Zieldatei nicht auf .jpg endet. Eine der möglichen Kennzeichnungen ist übrigens "X:", womit das X Window System gemeint ist. Diese ist nur verfügbar, wenn Sie auch unter X arbeiten und hat die folgende Bedeutung:

Noch viel mehr

Die Fähigkeiten, zwischen den diversen Dateiformaten umzuwandeln, würde eine Vorstellung schon alleine rechtfertigen, aber convert kann noch viel mehr. Als Teil des ImageMagick-Pakets hat es auch Zugriff auf viele der Filter, die in ImageMagick zur Verfügung stehen. Wenn Sie beispielsweise ein großes Bild auf eine kleinere Auflösung "runter rechnen" wollen, sieht das Ergebnis oft recht pixelig aus; besser wird es, wenn Sie es vorher durch den Blur-Filter jagen, der das Bild unschärfer macht - dies ist zum Beispiel beim Grafikprogramm xv die vernünftigste Vorgehensweise. convert ist aber schlauer und rechnet das Bild beim Verkleinern automatisch in guter Qualität um.

Um ein großes Bild klein zu machen, verwenden wir die Option "-geometry" zur Größenänderung:

convert gross.jpg -geometry 300x200 klein.jpg
Die man-Page zu convert hält am Ende (nach einer ausführlichen Beschreibung aller unterstützten Bildformate) eine Liste aller Optionen bereit, mit denen Sie Ihr Bild verändern können. Interessant sind beispielsweise "-crop" zum Ausschneiden eines Rechtecks aus dem Ursprungsbild und "-draw" zum Zeichnen einfacher grafischer Elemente (Linie, Kreis, Bezier-Kurve, Text u. v. m.) über das Bild. (hge)

Links ein Moorhuhn in Originalgröße, rechts nach dem Verkleinern (zum Vergleich hier auf gleiche Größe gezogen)

Gut für Skripte

Spielen Sie ein wenig mit den Möglichkeiten von convert herum: Das Programm eignet sich besonders zum Einbauen in Shell-Skripte und kann damit komplexe Bildbearbeitungsvorgänge automatisieren: Um etwa alle Bilder in einem Verzeichnis zu kleinen 50x50-Icons runter zu rechnen, könnten Sie das folgende Shell-Skript verwenden:
#!/bin/bash
for bild in *.gif; do
  ziel=`echo $bild | sed s/.gif/_small.gif/`
  convert $bild -geometry 50x50 $ziel
done
In der etwas umständlich wirkenden dritten Zeile wird aus jedem Quelldatei-Namen irgendwas.gif im aktuellen Verzeichnis ein Zieldateiname irgendwas_small.gif berechnet: dazu wird der Name in das Kommandozeilen-Tool sed gepipet, und dort wird die Endung ".gif" durch "_small.gif" ausgetauscht. Das Ergebnis dieses sed-Aufrufs wird dann über die Rückwärts-Quotes "`" in die Variable $ziel geschrieben.

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.




Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2010 Linux New Media AG

[Linux-Magazin] [LinuxUser] [EasyLinux] [Linux-Community] [Ubuntu User] [Linux Technical Review] [Linux Magazine] [Linux Pro Magazine] [Ubuntu User]
[EasyLinux Poland] [Linux Magazine Poland] [Linux Magazine Brasil] [EasyLinux Brasil] [Linux Magazine Spain]