2010-08-23 3 views
1

Pouvez-vous créer un fichier PNG, GIF, etc avec C++ sur Windows?Est-il possible de créer une image avec C++?

Si c'est possible, comment? Pour un exemple comment pouvez-vous faire une image png juste une couleur unie.

Juste un "bonjour monde" exemple serait génial ...

+0

Vous pouvez écrire des données binaires dans un fichier en utilisant la bibliothèque d'entrée/sortie, donc, oui, vous pouvez créer des images en C++ . Que voulez-vous exactement faire avec ces images que vous allez créer? Sur quelle (s) plate-forme (s) votre logiciel doit-il fonctionner? Sans plus de détails, il est assez difficile de répondre à votre question. –

+0

Création/écriture d'une sortie binaire - pour avoir une idée d'un format d'image simple, consultez le site http://www.w3.org/TR/PNG/. (JPEG est massivement plus compliqué.) Les bibliothèques suggérées ci-dessous sont une approche plus pratique pour un débutant. –

Répondre

5

Quand quelqu'un vous pose des questions sur Bonjour tout le monde, dites Bonjour tout le monde ...

#include "opencv/cxcore.h" 
#include "opencv/cv.h" 
#include "opencv/highgui.h" 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    cv::Mat image(480, 640, CV_8UC3); 
    cv::putText(image, "Hello world", cvPoint(320, 200), 
     CV_FONT_HERSHEY_SIMPLEX, 1, cvScalar(255, 0, 0)); 
    cv::imwrite("output.tif", image); 
    return 0; 
} 
2

Oui, il est possible de le faire. Certaines bibliothèques pour la manipulation d'image incluent ImageMagick/GraphicsMagick (même API), CImg et OpenCV. OpenCV est de loin le plus puissant mais aussi le plus difficile à utiliser. CImg est probablement le plus facile à utiliser, et je le recommande fortement pour les débutants ... vous créez essentiellement une instance du type CImg <pixel_type>, remplissez les pixels, puis appelez "save", qui en déduira automatiquement le type et sait comment l'encoder en fonction de l'extension de fichier que vous lui donnez.

+0

comment obtenir la taille d'une image png en C++? – karikari

1

Les images sont simplement des fichiers binaires et C++ peut facilement écrire des fichiers binaires. Les formats d'image incluent de nombreux algorithmes de compression compliqués, ce qui n'est pas toujours facile.

Il est généralement préférable d'utiliser une bibliothèque C++ capable de gérer le chargement/l'enregistrement de ces fichiers pour vous permettre de vous soucier de choses plus importantes comme celles que vous aimeriez voir dans ces images.

Imaghttp://www.imagemagick.org est un populaire utilisé par plusieurs projets open source mais il y en a beaucoup d'autres.

Questions connexes