HELP: Utiliser la librairie LIBBMP pour charger une image BMP

biloy Messages postés 23 Date d'inscription lundi 15 décembre 2008 Statut Membre Dernière intervention 7 avril 2010 - 11 oct. 2009 à 23:16
biloy Messages postés 23 Date d'inscription lundi 15 décembre 2008 Statut Membre Dernière intervention 7 avril 2010 - 12 oct. 2009 à 19:31
Bonsoir,
Après y avoir passé une bonne partie de l'après midi et de la soirée, je n'ai absolument pas compris l'utilisation de cette librairie (LIBBMP dispo sur cppfrance.com) pour charger,modifier une image bmp.

C'est mon prof d'info qui souhaiterai qu'on utilise cette librairie, et plus particulièrement libbmp.h, libbmp_write.c et libbmp_load.c, pour modifier une image bitmap. J'ai compris le fonctionnement général de chaque fichier, mais il y a de nombreuse structure de donnée, dans le .h, que je ne comprends pas.

Je voulais juste m'essayer à charger une image (lena.bmp) avec libbmp_load.c. Pour ce que j'ai compris, l'image retourne 0 si le chargement ne marche pas, et 1 si ça marche. Mais dans tout les cas elle me retourne zéro. Après peut être qu'il y a plein de paramettre a crée. La fonction ce présente comme tel :
int libbmp_load(char *filename, t_bmp *bmp);
donc après je definis char *lena; (pour charge le fichier), et concernant le t_bmp *bmp, je crois que ça comprends les caractéristiques de l'image ? je me trompe?

Si quelqu'un pouvait juste m'éclairer sur comment charger l'image, et pour vérifier qu'elle est bien charger.

L'image est dans le même dossier dans le projet.

Merci d'avance.

4 réponses

cs_Lucky92 Messages postés 180 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 16 août 2012 2
11 oct. 2009 à 23:59
Bonsoir,

Voici un exemple d'utilisation en c++.

Cordialement.

main.cpp :

#include 

extern "C"
{
    #include "libbmp.h"
}

int main()
{
    t_bmp bmp ;
    if ( !libbmp_load( "lena.bmp" , &bmp ) )
        std::cout << "KO :(" << std::endl ;
    else
        std::cout << "OK :) " << bmp.width << " X " << bmp.height << std::endl ;
}
0
biloy Messages postés 23 Date d'inscription lundi 15 décembre 2008 Statut Membre Dernière intervention 7 avril 2010
12 oct. 2009 à 09:39
Merci de la réponse, mais je code en C, et il y a des trucs que je comprends pas dans le code que tu m'as donné mais je vais voir ce que je peux faire.

Quand je met "lena.bmp", le programme plante.
0
cs_Lucky92 Messages postés 180 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 16 août 2012 2
12 oct. 2009 à 19:14
Et voici la version C...

main.c :

#include <stdio.h>
#include "libbmp.h"

int main()
{
t_bmp bmp ;
char * file_name = "lena.bmp" ;

if ( !libbmp_load( file_name , &bmp ) )
{
printf( "KO :(\n" ) ;
}
else
{
printf( "KO :( %d X %d\n" , bmp.width , bmp.height ) ;
}
}


Courage.
0
biloy Messages postés 23 Date d'inscription lundi 15 décembre 2008 Statut Membre Dernière intervention 7 avril 2010
12 oct. 2009 à 19:31
Mon sauveur! Merci beaucoup. Je vois pas trop pourquoi ça ne marchais pas de mon coté. Quoique alors que je suis en train d'écrire je relis, et je vient de voir.

J'avais créé un t_bmp *bmp; c'est de la que venait le problème. Je dois avoir quelque lacune concernant les pointeurs, je vais aller lire 2/3 cours.

Merci encore.
0
Rejoignez-nous