2010-02-12 8 views
9

je suis plus un développeur java et il est un moyen standard d'images de lecture:Comment puis-je lire/charger des images en C++?

BufferedImage img = null; 
try { 
    img = ImageIO.read(new File("strawberry.png")); 
} catch (IOException e) { 
} 

mais ce qui est la façon dont C++ d'images de chargement? Je veux charger toutes les images dans un répertoire spécifique dans un tableau ou plus.

+3

Il n'existe pas de méthode standard en C++ - la bibliothèque C++ Standard ne prend pas en charge les images. Vous devrez utiliser l'une des nombreuses bibliothèques de gestion d'images non standard. –

+5

J'utiliserais magick ++ moi-même ... –

+1

Veuillez spécifier OS. Il n'y a pas de manipulation d'image en C++ propre. –

Répondre

8

Personnellement, je préfère la bibliothèque ImageMagick.

Il existe de nombreuses bibliothèques de traitement graphique disponibles, et il n'y a pas un seul choix qui se démarque nettement des autres. Mon conseil est de faire une liste courte de 3 ou 4, regarder la documentation pour chacun, et essayer d'écrire un programme de demi-page simple avec chacun. Utilisez celui que vous trouvez personnellement le plus facile à utiliser.

1

La bibliothèque que vous voulez utiliser pour charger les images dépend de ce que vous comptez en faire. Si vous utilisez un framework tel que QT ou wxWidgets, il fournira des routines de chargement d'image.

Une autre possibilité est d'utiliser la bibliothèque SDL Image, et de travailler sur les surfaces SDL, ce qui vous permettra de travailler jusqu'au niveau des pixels si vous en avez besoin.

7

Il n'y a pas de "chemin" standard en C++ pour charger des images ou des fichiers de tout autre type. Cette fonctionnalité est fournie par les bibliothèques (généralement tierces) .

Sous Windows, vous pouvez utiliser les API GDI ou DirectX pour charger les images en mémoire.

Vous pouvez également utiliser l'une des nombreuses bibliothèques différentes. Certains qui viennent à l'esprit:

Il y a beaucoup, beaucoup d'autres à regarder, et certains peuvent être plus appropriés que d'autres selon ce que vous essayez de faire. Par exemple, si vous ne travaillez qu'avec des fichiers JPEG, vous devez utiliser libIJG. Ou si vous n'utilisez que le format PNG, vous pouvez trouver libPNG ou cairo plus approprié.

1

Qt a un bon support pour les images, et est gratuit et multi-plateforme.

Vérifiez la qimage class