emrod
Messages postés9Date d'inscriptiondimanche 9 avril 2006StatutMembreDernière intervention13 mai 2006
-
13 mai 2006 à 13:08
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 2009
-
14 mai 2006 à 01:27
Salut, j'aimerais convertir une image BMP 16 bits en image BMP 24 bits, est-ce qu'il existe une fonction ou un programme pour faire ça ?
En fait, j'ai écrit un programme qui lit, traite et écrit des images BMP 24 bits. Le problème, c'est que maintenant j'applique ce programme à des images captées par une caméra en utilisant un logiciel de capture vidéo qui fournit des images BMP 16 bits.
J'ai remarqué qu'en modifiant ces images sur paint par exemple, les images sont converties toutes seules en images BMP 24 bits, donc je peux les utiliser. Mais bon je vais pas m'amuser à modifier toutes les images, ça doit le faire automatiquement d'où ma question...
Merci
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 13 mai 2006 à 14:03
Oui il existe une librairie (gratuite en plus) pour faire (ça entre autre), FreeImage.
J'ai posté une source sur un exemple de conversion :
http://www.cppfrance.com/code.aspx?ID=29172 Ca t'aidera sûrement.
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
emrod
Messages postés9Date d'inscriptiondimanche 9 avril 2006StatutMembreDernière intervention13 mai 2006 13 mai 2006 à 16:01
Ok merci, je dois pouvoir se faire :)
En fait, il faut utiliser la fonction FreeImage_ConvertTo24Bits() pour convertir en BMP 24 bits, puis utiliser FreeImage_Save() pour sauver l'image (en mettant BMP au lieu de JPEG comme dans ton programme).
Je vais voir ça et je remettrai un message si j'ai un problème.
Merci !
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 13 mai 2006 à 16:03
Je ne me souviens plus très bien mais c'est qq chose comme ça oui.
Par contre il y a une fonction que tu n'as pas précisée, celle pour ouvrir le fichier à convertir.
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
emrod
Messages postés9Date d'inscriptiondimanche 9 avril 2006StatutMembreDernière intervention13 mai 2006 13 mai 2006 à 16:10
En fait dans ton programme la fonction FreeImage_Load() est utilisée pour lire l'image. En fait je pense que je peux me limiter à ces 3 fonctions, le début du programme ne doit pas me servir je pense (en plus j'ai pas tout capté lol). Moi je veux juste convertir une image (déjà existante dans le même dossier) de 16 bits en 24 bits.
J'essaierai ça quand j'aurai le temps...
Vous n’avez pas trouvé la réponse que vous recherchez ?
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 13 mai 2006 à 16:15
Je viens de rejeter un oeil et il te faut 2 autres fonctions indispensables, celle d'initialisation (FreeImage_Initialise(false)) et celle de cloture (FreeImage_DeInitialise()).
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
if (FreeImage_Save(FIF_BMP, Image2, "image_convertie.bmp", 0))
printf("Conversion reussie\n");
else printf("Echec de la conversion\n");
FreeImage_Unload(Image);
FreeImage_DeInitialise();
}
L'image image_16 est convertie et enregistrée dans "image_convertie.bmp".
J'ai rajouté dans le même répertoire les fichiers FreeImage.dll, libfreeimage.a et FreeImage.h et ça marche.
Merci pour tout !