Question

Je souhaite décoder les fichiers JPEG et obtenir une sortie décodée non compressée au format BMP / RGB. J'utilise GNU / Linux et C / C ++.

J'ai jeté un œil à libjpeg, mais il ne semblait pas y avoir de bonne documentation disponible. Mes questions sont donc les suivantes:

  1. Où se trouve la documentation sur libjpeg?
  2. Pouvez-vous suggérer d'autres bibliothèques de décompression JPEG au format C?
Était-ce utile?

La solution

La documentation de libjpeg est fournie avec le code source. Puisque vous ne l'avez pas encore trouvé:

Téléchargez l'archive de code source et ouvrez le fichier libjpeg.doc . C'est un fichier ASCII ordinaire, pas un document Word, alors ouvrez-le bien dans le bloc-notes ou un autre éditeur ASCII.

Il existe également d’autres fichiers .doc. La plupart d'entre eux ne sont toutefois pas très intéressants.

Malheureusement, je ne peux pas recommander d'autre bibliothèque que libjpeg. J'ai essayé plusieurs solutions, mais Libjpeg a toujours gagné. Est-ce assez facile de travailler avec une fois que vous avez fait les bases. C'est aussi la bibliothèque jpeg la plus complète et la plus stable.

Autres conseils

MagickWand est l’API C pour ImageMagick:

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

Je ne l'ai pas utilisé, mais la documentation semble assez volumineuse.

J'ai du code que vous pouvez copier (ou simplement utiliser comme référence) pour charger une image jpeg à l'aide de la bibliothèque libjpeg.

Vous pouvez parcourir le code ici:
http://code.google .com / p / kgui / source / parcourir / trunk / kguiimage.cpp

Recherchez simplement la fonction LoadJPGImage .

Le code est configuré pour gérer la liaison c ++ de ma classe DataHandle à celle-ci lors du chargement de l'image. Ainsi, l'image peut être un fichier ou des données déjà en mémoire ou autre.

Une solution légèrement prête à l'emploi consiste à acquérir une copie des outils netpbm , qui permettent de transformer des images. de pratiquement tous les formats à n’importe quel autre format, en passant par un de plusieurs formats intermédiaires très simples. Ils fonctionnent bien à partir du shell et sont le plus souvent utilisés dans les pipes pour lire des images arbitraires, les exécuter et les écrire dans un autre format.

Les formats pbm peuvent être aussi simples qu’un simple en-tête ASCII suivi des données RVB au format ASCII ou binaire. Ils sont censés être assez simples pour utiliser sans nécessiter une bibliothèque à implémenter.

JPEG est pris en charge dans netpbm par les filtres de lecture et d'écriture qui sont implémentés au-dessus de libjpeg.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top