Home / LinuxUser / 2008 / 05 / Zügiger Wechsel

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(179 Punkte bei 5 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)
Mageia 2 ist fertig
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Zügiger Wechsel

ExactImage vs. ImageMagick

Positives und negatives Pflanzenwachstum

Zu den typischen Konvertierungsarbeiten zählt es, Bilder für das Hochladen ins Web zu verkleinern. Convert bietet für diese Skalierung die Parameter -adaptive-resize, -resize oder -scale an. Die letzte Variante soll laut Dokumentation die schnellste sein, verzichtet sie doch auf jegliche interne Filteroperationen. Die Zielgröße kann man dabei absolut oder prozentual angeben. Demnach sorgt der Befehl convert -scale 50% Eingabe Ausgabe dafür, dass Breite und Höhe eines Ausgangsbildes auf die Hälfte zusammenschmelzen. convert -scale 800x600 Eingabe Ausgabe hingegen skaliert das Bild derart, dass entweder die Breite anschließend maximal 800 Pixel oder die Höhe maximal 600 Pixel beträgt.

Ein der Zielgröße nachgestelltes Caret (800x600^) hingegen garantiert dafür, dass das Ergebnis mindestens 800 Pixel Breite und wenigstens 600 Pixel Höhe aufweist – die Seitenverhältnisse bleiben hierbei erhalten. Möchten Sie das vermeiden und ein Bildformat von exakt 800 x 600 Pixeln erzwingen, hilft ein Ausrufezeichen (800x600!). Darüber hinaus legen Sie mit 800x600> beziehungsweise 800x600< als Geometrieangabe fest, dass Convert nur dann die Größe ändern soll, wenn das Ausgangsbild die gewünschte Zielgröße über- oder unterschreitet.

Der Herausforderer Econvert versteht nur die beiden Skalierungsparameter --scale und --box-scale. Bei ersterem versprechen die Entwickler, dass das Tool je nach Skalierungsfaktor intern den besseren Algorithmus nutzt. Bei --box-scale kommt dagegen intern stets ein so genannte Mittelwertfilter (engl.: Box-Filter) zum Einsatz. Die eher spärliche Dokumentation zu Econvert weist keine Möglichkeit zur Angabe absoluter Zielgrößen aus, Prozentangaben erfolgen als Hundertstel: Demnach reduziert econvert -i Eingabe --scale .25 -o Ausgabe die Größe auf ein Viertel.

Um die Vergleichbarkeit beim Test zu gewährleisten, konvertieren wir alle Bilder auf 25 Prozent der Ursprungsgröße. Die ImageMagick-Version von Ubuntu unterstützt -adaptive-resize nicht, sodass wir nur die anderen beiden Varianten und die beiden Konversionsmethoden von Econvert ins Duell einbezogen. Hierfür diente das in Listing 1 gezeigte Skript, bei dem wir für jeden Lauf jeweils nur einen Kandidaten durch Entfernen des # aktivierten.

Listing 1
#!/bin/bash
KUMULATIV=0
for BILD in *.jpg
  do
    START=`date +"%s.%N"`
#  convert -resize 25% "$BILD" "./convert_r/$BILD"
#  convert -scale 25% "$BILD" "./convert_s/$BILD"
#  econvert -i "$BILD" --scale .25 -o "./econvert_s/$BILD"
#  econvert -i "$BILD" --box-scale .25 -o "./econvert_bs/$BILD"
    STOP=$(date +"%s.%N")
    DIFFERENZ=$(echo $STOP-$START | bc)
    echo $DIFFERENZ >> EINZELZEITEN.TXT
    KUMULATIV=$(echo $KUMULATIV+$DIFFERENZ | bc)
    echo $KUMULATIV >> KUMULATIV.TXT
  done

Trotz der identischen Aufgabe unterscheiden sich die Ergebnisse doch deutlich hinsichtlich der Dateigrößen und der Verarbeitungszeit. Econvert erzeugte aus den 209 MByte Ausgangsmaterial lediglich 7,3 MByte skalierte Bilder, Convert dagegen 21 MByte. Für die Analyse des Zeitverbrauchs berechneten wir sowohl die Einzelzeiten (Abbildung 2) als auch die kumulierten Zeiten (Abbildung 3): Erste besagen, wie lange das jeweilige Skalieren pro Bild gedauert hat; letztere stellen die gesamte Verarbeitungszeit dar. Die Ergebnisse verdeutlichen, dass der Herausforderer hier deutlich die Nase vorn hat.

Abbildung 2: Econvert benötigt im Test je nach Skalierungsalgorithmus durchschnittlich zwischen 0,5 und 1,5 Sekunden je Bild – ImageMagick dagegen deutlich mehr.

Abbildung 3: Bei vielen Bildern summieren sich die Unterschiede deutlich auf.

Stroh zu Gold

Neben dem Skalieren von Bildern steht oft auch das Umwandeln in andere Formate auf der Aufgabenliste. Zwar unterstützen Convert deutlich mehr Dateiformate, immerhin kann aber auch Econvert mit den gängigsten aufwarten. Im zweiten Test sollen die beiden Kontrahenten Bilder vom JPEG- ins PNG-Format konvertieren. Da dies deutlich mehr Zeit erfordert als das Skalieren, nutzten wir hier die mit Econvert verkleinerten Bilder.

Der Befehl convert Eingabe Ausgabe beziehungsweise econvert -i Eingabe -o Ausgabe erledigt das Gewünschte. Dabei enden die Dateinamen bei Eingabe in unserem Fall auf .jpg, bei Ausgabe auf .png. Daraus erkennen sowohl Convert als auch Econvert selbständig das Zieldateiformat.

Die Messergebnisse in Abbildung 4 verdeutlichen erneut den Zeitvorteil des Herausforderers. Interessanterweise erzeugte Econvert in diesem Test minimal größere Dateien als Convert (55 MByte vs. 54 MByte).

Abbildung 4: Auch das Wandeln von JPEG nach PNG bewältigt Econvert zügiger als Convert.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 115 Punkte (18 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...