AA_123rf-20669410_PaoloDeSantis-123RF.jpg

© Paolo De Santis, 123RF

Schnelle Bildbearbeitung mit ExactImage

Weniger ist mehr

Das ursprünglich für die automatische Bildaufbereitung von gescannten Bildern entwickelte ExactImage lässt sich auch im Alltag an verschiedenen Stellen nutzbringend einsetzen.

README

Wer in die Verlegenheit gerät, automatisch einen größeren Stapel von Bildern bearbeiten zu müssen, landet schnell bei der etwas unübersichtlichen Programmsuite ImageMagick. ExactImage bietet hier eine Alternative, indem es sich auf die wichtigsten Bildbearbeitungswerkzeuge beschränkt.

Wer Bilder automatisch im Stapelbetrieb bearbeitet, braucht schlanke, leicht zu bedienende Werkzeuge. Normalerweise dient dann Convert aus der ImageMagick-Suite [1] als Programm der Wahl. Allerdings gibt es auch einige Punkte, die gegen dieses Programm sprechen. Insbesondere glänzt Convert nicht unbedingt durch Stabilität. Meist spielt das keine ausschlaggebende Rolle, aber bei komplexen Befehlszeilen kann es schon einmal vorkommen, dass die Programmaufrufe mit einer (zumeist unverständlichen) Fehlermeldung abbrechen und ein falsches oder gar kein Ergebnis erzeugen.

Überhaupt erweist sich die Konstruktion der Befehlszeilen mit Convert als nicht zu unterschätzende Aufgabe: Das Programm kennt nicht weniger als 300 verschiedene Schalter, die oft eine etwas seltsame Syntax aufweisen. Auf jeden Fall dienen viele der Optionen sehr speziellen Aufgaben und fordern dem Anwender einige Übung und reichlich Wissen ab, um sie nutzen zu können – oder wüssten Sie aus der Hüfte, welches Ergebnis der Aufruf convert ... -resize 200\>x300^ ... erzeugt?

Weiterhin bemängeln viele Anwender die relativ geringe Effektivität der ImageMagick-Werkzeuge. Weder arbeiten die Programme besonders schnell, noch liefern sie besonders gute Ergebnisse. Das liegt zum Teil auch an der gewaltigen Funktionsvielfalt, die man oft gar nicht benötigt.

Die konkurrierende Suite GraphicsMagick [2] stellt einen Versuch dar, diesen Mängeln abzuhelfen, ein weiterer hört auf den Namen ExactImage [3]. Beide stellen nur ein Subset von ImageMagicks Repertoire bereit und beschränken sich dabei auf die wichtigsten Funktionen.

Worin unterscheiden sich die drei Konkurrenten nun im Einzelnen? Während ImageMagick mit knapp 20 verschiedenen Programmen daherkommt, beschränkt sich GraphicsMagick auf nur eines sowie drei Konfigurationsprogramme, ExactImage liefert immerhin noch sieben Werkzeuge (siehe Tabelle "ExactImage-Programme").

Während GraphicsMagick versucht, den größten Teil von ImageMagicks Funktionen abzubilden, liefert die ExactImage-Minisuite lediglich ein universelles Werkzeug (Econvert als Pendant zu Convert) sowie einige Programme für sehr spezielle Aufgaben, wie etwa das Lesen von Barcodes und das Erkennen von leeren Seiten.

ExactImage-Programme

Programm Funktion
bardecode liest Barcodes
e2mtiff fasst mehrere Bilder zu einem mehrseitigen TIFF-Image zusammen
econvert universeller Konverter, Gegenstück zu Convert aus der ImageMagick-Suite
edentify identifiziert Bilddateien, Gegenstück zu Identify aus der ImageMagick-Suite
empty-page erkennt Bilder leerer Seiten
hocr2pdf erzeugt mittels hOCR-Dateien durchsuchbare PDFs
optimize2bw optimiert Bilddateien für die Archivierung
Anmerkung: Zusätzlich gibt es noch Edisplay, eine heute nicht mehr wirklich unterstützte Variante des ImageMagick-Anzeigeprogramms Display.

Und: Action!

Ähnlich wie Convert bei den ImageMagick-Tools betätigt sich Econvert als Hauptakteur, wenn es um das Erzeugen neuer Bilder aus bestehenden geht. Die Syntax folgt dabei der folgenden Struktur:

$ econvert -i Eingabedatei -Option...  -o Ausgabedatei<c>

Hier gilt es, unbedingt auf die korrekte Reihenfolge der einzelnen Bestandteile zu achten, ansonsten ignoriert Econvert (genau wie Convert) eventuell die angegebenen Optionen. Aus einer Eingabedatei können Sie mittels mehrerer Angaben von -Option -o Ausgabedatei beliebig viele Ausgabedateien in einer Befehlszeile erzeugen.

Die Arbeit der ExactImage-Tools wird, wie auch bei ImageMagick, vollständig durch die Optionen gesteuert (siehe Tabelle "Wichtige Optionen"). Dabei unterstützt ExactImage nur eine Teilmenge der vorhandenen Bildformate, die sich zudem bei den Ein- und Ausgaben unterscheidet (siehe Tabelle "Unterstützte Bildformate"). Die wichtigsten Bildformate unterstützt ExactImage dabei aber weitgehend.

Wichtige Optionen

Option Funktionen
--compress Methode Kompressionsmethode für Ausgaben, etwa G3, G4, ZIP, …
--quality Prozent definiert die Qualität in Prozent, voreingestellt: 75
--resolution xdpi [ydpi] Auflösung in X- und Y-Richtung
--size BreitexHöhe definiert die Breite und Höhe der Ausgabedatei für Rohdatenformate
--scale Faktor skaliert um den angegebenen Faktor
--crop x y w h beschneidet das Bild auf den angegebenen Bereich
--fast-auto-crop automatisches Beschneiden (vom unteren Rand her)
--flip spiegelt vertikal
--flop spiegelt horizontal
--rotate Winkel dreht das Bild um den angegebenen Winkel
--brightness Wert Helligkeit anpassen (-1 bis +1)
--contrast Wert Kontrast anpassen (-1 bis +1)
--saturation Wert Sättigung anpassen (-1 bis +1)
--lightness Wert Leuchtstärke anpassen (-1 bis +1)
--hue Wert Farbton anpassen (-360 bis +360)
--negate ein Negativ erzeugen
--gamma Wert das Gamma einstellen
--normalize "normalisiert" die Farben im Bild
--colorspace Modell konvertiert Bilder in eines der Farbmodelle BW, BILEVEL, GRAY, GRAY1, GRAY2, GRAY4, RGB, YUV oder CYMK
--floyd-steinberg Wert erzeugt Schattierungen nach Floyd-Steinberg
--riemersma Wert erzeugt Schattierungen gemäß Riemersma
--blur Wert Gaußscher Weichzeichner
--edge Kanten finden
--foreground Farbe Zeichenfarbe setzen
--background Farbe Hintergrundfarbe setzen
--font Font Font einstellen
--text x1 y1 Größe Text den Text an der angegebenen Position in der spezifizierten Größe ausgeben
--text-rotation Winkel rotiert Texte
--stroke-width Dicke Dicke für Linien
--line x1 y1 x2 y2 Linie zwischen den angegebenen Punkten zeichnen

Unterstützte Bildformate

Kürzel Bildformat
BMP Windows primitives Bitmap-Format
Digital Camera RAW von DCRAW unterstützte Rohdatenformate
Encapsulated PostScript einseitiges PostScript
GIF das veraltete Bitmap-Format
JPEG klassisches JPEG
JPEG2000 die neue JPEG-Variante
OpenEXR HDR-Bitmap-Format, mit bis zu 32Bit Float pro Kanal
PBM Portables Bitmap-Format
PCX Picture Exchange, verbreitetes Austauschformat
PDF write-only, mit eingebetteten JPEG und JPEG2000 sowie Fonts
PNG Standard-Bitmap-Format
PostScript write-only, mit eingebetteten JPEG
RAW rohe Bilddateien
SVG skalierbare Vektorgrafiken, read-only
Targa, TGA Truevision Advanced Raster Graphics Array, bis zu 32 Bit pro Kanal
TIFF der klassische Standard
XPM X Windows Bitmaps (hauptsächlich für Icons)

Beim Skalieren mittels --scale entscheidet der Algorithmus automatisch, welches Verfahren zum Einsatz kommt. Stellen Sie die dadurch gelieferten Ergebnisse nicht zufrieden, können Sie das Verfahren selbst festlegen. Dann heißen die Optionen entsprechend --bicubic-scale, --bilinear-scale, --box-scale, --ddt-scale oder --nearest-scale. Für das Erzeugen von Thumbnails gibt es mit --thumbnail einen besonders schnellen Filter.

Das Beispiel in Listing 1 verdeutlicht noch einmal die Verwendung von Econvert. Es erzeugt aus einer Eingabedatei drei unterschiedlich helle Ausgabedateien.

$ econvert -i 'tst.jpg' --brightness .5 -o tst1.jpg --brightness 1.5 -o tst2.jpg --brightness 5.5 -o tst3.jpg

Wer bist Du denn?

Das zweite wichtige Programm aus der ExactImage Suite ist Edentify, das dazu dient, das Format von Bildern zu identifizieren. Das Beispiel aus Listing 2 ist bewusst schwer gewählt: Beim Identifizieren von Rohdatenformaten handelt es sich um eine ohnehin schon anspruchsvolle Aufgabe, die sich bei dem durch Konvertierung erzeugten DNG nochmals erhöht. Wie im Vergleich dazu ImageMagick dieses Aufgabe mittels Identify bewältigt, zeigt Listing 3.

$ edentify _1140131.dng
TIFFReadDirectory: Warning, Unknown field with tag 34858 (0x882a) encountered.
TIFFReadDirectory: Warning, Unknown field with tag 50936 (0xc6f8) encountered.
TIFFReadDirectory: Warning, Unknown field with tag 50941 (0xc6fd) encountered.
TIFFReadDirectory: Warning, Unknown field with tag 50972 (0xc71c) encountered.
_1140131.dng: TIFF 256x192 24 bits, 3 channels
$ edentify _7098855.ORF
Not a TIFF file, bad version number 20306 (0x4f52).
_7098855.ORF: DCRAW 3720x2800 48 bits, 3 channels
$ identify _1140131.dng
_1140131.dng=>magick-28490XIzHW1VpYbaB.png DNG 4608x3464 4608x3464+0+0 16-bit sRGB 80.88MB 0.000u 0:00.000
$ identify _7098855.ORF
_7098855.ORF=>magick-28748rXhecIGQEDLK.png ORF 3729x2807 3729x2807+0+0 16-bit sRGB 43.04MB 0.000u 0:00.000

Während Edentify halbwegs korrekte Angaben liefert und sich gar nicht erst an den Dateigrößen versucht, aber gleichzeitig auch reichliche Fehlermeldungen ausgibt, geht ImageMagicks Identify hier anders vor: Zunächst konvertiert es die Rohdaten in ein Bitmap-Format, das es dann anschließend analysiert.

Ob diese Variante tatsächlich Sinn ergibt, darf man getrost bezweifeln. So zeigt sich, dass die von Identify angegebenen Dateigrößen völlig danebenliegen, da sie sich auf die durch die Konvertierung erzeugten Bitmap-Dateien beziehen anstatt auf die Originale. Die Bewertung von DNG als TIFF kann man als halbwegs korrekt gelten lassen, da DNG als Erweiterung des TIFF-Standards konzipiert wurde.

Interessant ist die Möglichkeit, mittels Edentify gezielt bestimmte Informationen über Bilder anzuzeigen. Dies gelingt durch die Angabe eines "Formatstrings" als Argument der Option -f. So zeigt -f "%f" den Dateinamen, -f "%w" die Breite und so weiter. Die Tabelle "Formatstrings" fasst die wichtigsten Varianten zusammen. Um mehrere Zeichenketten zu verbinden, können Sie \t ("Tabulator"), \n ("Newline") oder \r ("Carriage Return") verwenden.

Insgesamt bietet Edentify allerdings nur begrenzte Möglichkeiten, sodass Sie hier bei Bedarf doch wieder auf ImageMagicks Identify zurückgreifen müssen.

Formatstrings

Kürzel Bedeutung
%d Directory
%f voller Dateiname
%t Dateiname ohne Erweiterung
%i Pfad
%w Breite
%h Höhe
%q Farbtiefe pro Kanal
%x X-Auflösung
%y Y-Auflösung
%z Bildtiefe

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Zügiger Wechsel
    Manchmal muss man einen ganzen Schwung Bilder am Stück konvertieren. Hier macht ExactImage dem traditionellen ImageMagick Konkurrenz.
  • Richtig digitalisieren
    Einfach nur Bücher einscannen war gestern. Mit dem richtigen Werkzeugkasten erstellen Sie heute E-Books inklusive Volltextsuche und Inhaltsverzeichnis weitgehend automatisch.
  • Sicherheitslücke in ImageMagick
    Die Bildbearbeitungssoftware ImageMagick liegt nicht nur vielen Linux-Distributionen bei, sie kommt auch auf Webservern zum Einsatz. Jetzt wurde eine dramatische Sicherheitslücke entdeckt. Ein Update von ImageMagick steht jedoch noch aus.
  • Profi-Funktionen von ImageMagick nutzen
    Vom Konvertieren von Negativen bis hin zum PDF fürs Fotobuch – mit ImageMagick und ein paar Zeilen Shell-Code meistern Sie jede Aufgaben ruck, zuck auf der Kommandozeile.
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Huawei
Pit Hampelmann, 13.12.2017 11:35, 2 Antworten
Welches Smartphone ist für euch momentan das beste? Sehe ja die Huawei gerade ganz weit vorne. Bi...
Fernstudium Informatik
Joe Cole, 12.12.2017 10:36, 2 Antworten
Hallo! habe früher als ich 13 Jahre angefangen mit HTML und später Java zu programmieren. Weit...
Installation Linux mint auf stick
Reiner Schulz, 10.12.2017 17:34, 3 Antworten
Hallo, ich hab ein ISO-image mit Linux Mint auf einem Stick untergebracht Jetzt kann ich auch...
Canon Maxify 2750 oder ähnlicher Drucker
Hannes Richert, 05.12.2017 20:14, 4 Antworten
Hallo, leider hat Canon mich weiterverwiesen, weil sie Linux nicht supporten.. deshalb hier die...
Ubuntu Server
Steffen Seidler, 05.12.2017 12:10, 1 Antworten
Hallo! Hat jemand eine gute Anleitung für mich, wie ich Ubuntu Server einrichte? Habe bisher...