begin process at 2012 05 25 05:33:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

Newbii

 > 

Bitmapinfoheader


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Bitmapinfoheader

samedi 29 janvier 2005 à 15:01:42 | Bitmapinfoheader

noel70

Membre Club
Bonjour a tous,
Voila, j'ai fais une petite procedure pour affichier dans un control static une image.

La procedure pour afficher l'image dans un static:

.data

statClass db "STATIC",0

.data?

hInstance HINSTANCE ?



Affiche_Image proc proc hParent:DWORD, X:DWORD,Y:DWORD,ID:DWORD, Chemin:DWORD

LOCAL hStaticBitMap : DWORD

LOCAL hBmp : DWORD

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.

samedi 29 janvier 2005 à 15:51:42 | Re : Bitmapinfoheader

BruNews

Administrateur CodeS-SourceS
en C:
BITMAP bmp;
HBITMAP hbmp;
GetObject(hbmp, sizeof(bmp), &bmp);
cxDib = bmp.bmWidth;
cyDib = bmp.bmHeight;

ciao...
BruNews, MVP VC++
samedi 29 janvier 2005 à 18:23:09 | Re : Bitmapinfoheader

noel70

Membre Club
Comment fait-on pour traduire ceci en Masm32, j'ai essayer ceci:

invoke GetObject, hBmp, sizeof Nom_Fichier_Ouverture, Nom_Fichier_Ouverture

mov eax, Nom_Fichier_Ouverture.bmWidth

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

samedi 29 janvier 2005 à 18:37:19 | Re : Bitmapinfoheader

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
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.

ciao...
BruNews, MVP VC++
samedi 29 janvier 2005 à 20:32:35 | Re : Bitmapinfoheader

noel70

Membre Club
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

invoke SetDlgItemTextA, hWin, IDC_PETIT_COTE, ADDR Largeur_HEIGHT

invoke SetDlgItemTextA, hWin, IDC_GRAND_COTE, ADDR Longueur_WIDTH

et dans la section .data

bmih BITMAP <>



Cette discussion est classée dans : image, static, dword, hinstance, bitmapinfoheader


Répondre à ce message

Sujets en rapport avec ce message

afficher plusieur mot [ par hackeur13 ] bonjour a tous et a toute,je suis entrin d'essayer de programmer en asm avec MASM etj'aimerais savoir comment faire affichier a chaque fois que je cli [Nasm - Alink - WIn32] Probleme avec SetWindowsHookEx [ par jean84 ] Salut à tous ;)Je me permet de poser une chtite question car après avoir passé du temps à chercher la réponse à mon problème, bah j'ai toujours pas tr ça marche pas, aide ... [ par iscalibar ] Bonjour, j'ai un petit probleme, j'ai ecris un program pour le compilateur masm32 qui ne fai que afficher une fenetre, mai malheureusement ça marche p Mon pseudo OS [ par andrelec1 ] Plop a vous Alors voila je voudrais cree un pseudo OS Donc d'apres ce que j'ai deja lue , il me faudras apprendre deux langages :ASM (cherche un bon t Ecrire registre valeur dword32 [ par goldofff ] Bonjour,j'ai créé un petit prog en assembleur avec winasm qui me permet de créer une clef dans ma base de registre jusque là tout va bien.maintenant j en quel langage est ecrit ce programme [ par jedilu ] bonjouren quel language est ecrit ce programme car j'ai un probleme pour le lancermerci00629DE5   AE               SCAS BYTE PTR ES:[EDI]00629DE6   9E


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 11,887 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales