Frage

Ich mag JPEG-Dateien dekodieren und unkomprimierte decodierte Ausgabe in BMP / RGB format.I erhalten bin mit GNU / Linux und C / C ++.

Ich hatte einen Blick auf libjpeg, aber es schien keine gute Dokumentation zur Verfügung zu stehen. Also meine Fragen sind:

  1. Wo ist die Dokumentation auf libjpeg?
  2. Können Sie andere C-basierte JPEG-Dekompression Bibliotheken?
War es hilfreich?

Lösung

Die Dokumentation für libjpeg kommt mit dem Source-Code. Da haben Sie es noch nicht gefunden:

Laden Sie die Quellcode-Archiv und öffnen Sie die Datei libjpeg.doc . Es ist eine reine ASCII-Datei, kein Word-Dokument, so besser öffnen Sie sie in Notepad oder einem anderen ASCII-Editor.

Es gibt einige andere DOC-Dateien als auch. Die meisten von ihnen sind aber nicht so interessant.

Leider kann ich keine andere Bibliothek neben libjpeg empfehlen. Ich habe versucht, ein paar Alternativen, aber Libjpeg immer gewonnen. Ist ziemlich einfach, mit zu arbeiten, sobald Sie die Grundlagen getan haben. Auch ist es die umfassendste und stabilste JPEG-Bibliothek gibt.

Andere Tipps

MagickWand ist der C-API für ImageMagick:

http://imagemagick.org/script/magick-wand.php

Ich habe es nicht verwendet wird, aber die Dokumentation sieht recht umfangreich.

Sie sollten Qt QImage überprüfen. Es hat eine ziemlich einfache Schnittstelle, die diese Aufgabe wirklich einfach macht. Die Installation ist sehr einfach für jede Plattform.

Wenn Qt Overkill ist, können Sie versuchen, Magick ++ http://www.imagemagick.org/Magick++/ . Es unterstützt ähnliche Operationen und ist auch gut geeignet für diese Art von Aufgabe. Das letzte Mal habe ich es, ich kämpfte ein wenig mit Abhängigkeiten für sie auf Windows, aber kann mich nicht erinnern viel Mühe auf Linux.

Für Magick ++ 's Image-Klasse, die Funktion, die Sie wahrscheinlich wollen, ist getConstPixels.

Ich habe Code, den Sie (oder nur als Referenz) zum Laden eines JPEG-Bild mit der libjpeg Bibliothek kopieren.
Sie können den Code hier sehen: http://code.google .com / p / kgui / source / browse / trunk / kguiimage.cpp
Achten Sie einfach auf die Funktion LoadJPGImage .
Der Code ist Setup c zu behandeln ++ Bindung von meiner DataHandle Klasse, um es für das Bild geladen wird, auf diese Weise kann das Bild eine Datei oder Daten sein, die bereits im Speicher oder was auch immer.

Ein etwas aus der Box-Lösung ist eine Kopie der netpbm Tool zu erwerben, die Bilder umwandeln von so ziemlich jedem Format in ein anderes Format über eine von mehreren sehr einfachen Zwischenformate. Sie arbeiten gut aus der Schale, und werden am häufigsten in Rohren verwendet, um eine beliebige Bild zu lesen, eine Operation auf, und schreiben Sie es in ein anderes Format aus.

Die pbm Formate können so einfach wie ein reinen ASCII-Header durch die RGB-Daten in ASCII oder binär gefolgt sein. Sie sollen einfach genug zu bedienen, ohne eine Bibliothek erforderlich zu implementieren.

JPEG wird in netpbm von Lese- und Schreib Filter unterstützt, die oben auf libjpeg umgesetzt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top