invoke BitmapFromFile, Chemin ; permet de charger une image depuis un chemin de fichier ( image jpg, ;gif et bmp)
mov hBmp, eax ; recuper le handle de l'image
invoke CreateWindowEx,0 ; creer une fenetre static
ADDR statClass,NULL,
WS_CHILD or WS_VISIBLE or SS_LEFT or SS_BITMAP,
X,Y,CW_USEDEFAULT
,CW_USEDEFAULT
,hParent,ID,
hInstance,NULL
mov hStaticBitMap, eax ; recuper le handle de la fenetre static
invoke SendMessage, hStaticBitMap,STM_SETIMAGE,0,hBmp ; affiche l'image charger dans la fenetre static
ret
Affiche_Image endp
Mais maintenant, ce que je voudrais faire, c'est connaitre quelque information sur cette image,
comme sa hauteur et sa largeur.
Je pense que pour faire cela, il faut utiliser BITMAPINFOHEADER, mais je ne sais pas comment on utilise cette structure. si quelqu ' un peut m'aider,
Merci.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 29 janv. 2005 à 18:37
Faut regarder dans MSDN:
typedef struct tagBITMAP {
LONG [ bmType];
LONG [ bmWidth];
LONG [ bmHeight];
LONG [ bmWidthBytes];
WORD [ bmPlanes];
WORD [ bmBitsPixel];
LPVOID [ bmBits];
} BITMAP, *PBITMAP;
dernier param est de GetObject est l'adresse d'une struct BITMAP à remplir, second param est taille de la structure.
Mais au moment de la compilation, j'ai un message d'erreur, comme quoi bmWidth n est pas defini
Alors peut-etre qu'il faut declarer bmWidth dans une structure, mais je ne sais pas laquelle.
Si on peut m'aider , Merci
cs_noel70
Messages postés40Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention25 janvier 2007 29 janv. 2005 à 20:32
Ca marche merci, voila ce que j'ai fait :
Dans ma procedure pour creer un controle static et y afficher mon image avec le chemin du fichier, j'ai rajouté a la fin, mov eax, hBmp, ceci pour recuperer apres le handle de l'image
Puis apres mon appel a cette procedure:
mov hBmp, eax ; recupere le handle de l'image
INVOKE GetObject, hBmp, SIZEOF bmih, ADDR bmih ; recupere les information de l'image
mov eax, bmih.bmWidth
invoke dwtoa,eax,ADDR Longueur_WIDTH ; convertit en string
mov eax, bmih.bmHeight
invoke dwtoa, eax, ADDR Largeur_HEIGHT ; convertit en string