|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : afficher une image jpeg avec la fonction StretchDIBits ? [ Archives / Autres asm ] (mitch19)
Informations & options pour cette discussion
|
dimanche 5 mars 2006 à 21:54:55 |
afficher une image jpeg avec la fonction StretchDIBits ?

mitch19
|
bonjour, j'essaye depuis quelques temps d'afficher une image jpeg avec la commande StretchDIBits, en vain ! mon programme plante lamentablement ! Si quelqu'un peut m'aider ! merci mon code : fichier db "photo1.jpg",0 bv4H BITMAPV4HEADER <>
.data ? hPhoto dd ? pPhoto dd ? pJpeg dd ? Largeur dd ? Hauteur dd .elseif uMsg == WM_COMMAND mov eax,wParam .if eax == IDM_OPEN invoke BitmapFromFile,offset fichier ;ouvre fichier mov hPhoto, eax INVOKE GetObject, hPhoto, SIZEOF bv4H, ADDR bv4H ; information image ;la déja eax=0 donc j'ai rien récupéré! mov pPhoto,eax ;sauve sur pointer mov eax,bv4H.bV4V4Compression mov pJpeg,eax ;récupère la compression mov eax,bv4H.bV4Width mov Largeur,eax ;sauve largeur image mov eax,bmih.bV4Height mov Hauteur,eax ;sauve hauteur image invoke InvalidateRect,hWnd,NULL,TRUE ;repeindre la fenetre .endif
.elseif uMsg==WM_PAINT invoke BeginPaint,hWnd,addr ps mov hMemDC,eax invoke SetStretchBltMode, hMemDC, COLORONCOLOR invoke StretchDIBits, hMemDC, 0,0, cxClient, cyClient, 0,0,Largeur,Hauteur, \ pJpeg, pPhoto, DIB_RGB_COLORS, SRCCOPY ....
|
|
|
|
dimanche 5 mars 2006 à 22:42:56 |
Re : afficher une image jpeg avec la fonction StretchDIBits ?

BruNews
|
Je t'ai fait exemple en C ici, tu verras pour traduire en (pseudo) asm, pas le temps. [ Lien ]Une dialogbox repaint sa surface avec, alternativement par timer, 3 images (jpg, gif et bmp). ciao... [ Lien ]BruNews, MVP VC++
|
|
|
|
lundi 6 mars 2006 à 20:34:58 |
Re : afficher une image jpeg avec la fonction StretchDIBits ?

mitch19
|
merci, je vais épelucher ton code ! et désolé pour le pseudo assembleur !
|
|
|
|
lundi 6 mars 2006 à 21:28:05 |
Re : afficher une image jpeg avec la fonction StretchDIBits ?

mitch19
|
Le code qui marche en masm32 merci BruNews fichier db "photo1.jpg",0 bmih BITMAP <>
.data ? hPhoto dd ? hPhotoCopy dd ? Largeur dd ? Hauteur dd ? .elseif uMsg == WM_COMMAND mov eax,wParam .if eax == IDM_OPEN invoke BitmapFromFile,offset fichier ;ouvre fichier mov hPhoto, eax invoke CopyImage,hPhoto,IMAGE_BITMAP,0,0,/ LR_COPYRETURNORG mov hPhotoCopy,eax
INVOKE GetObject, hPhotoCopy, SIZEOF bmih, ADDR bmih ; information image mov eax,bmih.Width mov Largeur,eax ;sauve largeur image mov eax,bmih.Height mov Hauteur,eax ;sauve hauteur image invoke InvalidateRect,hWnd,NULL,TRUE ;repeindre la fenetre .endif
.elseif uMsg==WM_PAINT invoke BeginPaint,hWnd,addr ps mov hdc,eax invoke CreateCompatibleDC,hdc mov hMemDC,eax invoke SelectObject,hMemDC,hBitmap mov hOld, eax invoke GetClientRect,hWnd,addr rect invoke StretchBlt, hdc, 0, 0,cxClient, cyClient, hMemDC, 0, 0, cxDib,/ cyDib, SRCCOPY
|
|
|
|
lundi 6 mars 2006 à 21:47:36 |
Re : afficher une image jpeg avec la fonction StretchDIBits ?

BruNews
|
On peut parier au moins à 100 contre 1 que le compilo de VS aura produit un code nettement meilleur. Regarde tous les accès mémoire que tu forces inutilement: ... mov hdc,eax invoke CreateCompatibleDC,hdc mov hMemDC,eax ... à chaque ligne tu vas relire en mémoire ce que tu as déjà en registre, dur dur... Je te garantis qu'un bon compilo C moderne sait utiliser tous les registres pour ne jamais avoir à faire cela. ciao... [ Lien ]BruNews, MVP VC++
|
|
|
|
mardi 7 mars 2006 à 11:22:54 |
Re : afficher une image jpeg avec la fonction StretchDIBits ?
|
|
mardi 7 mars 2006 à 11:45:57 |
Re : afficher une image jpeg avec la fonction StretchDIBits ?

BruNews
|
Bon exemple, son hMemDC placé dans EDI aurait été très bien... Décompile l'exe du lien et regarde, j'ai vraiment mieux à faire. ciao... [ Lien ]BruNews, MVP VC++
|
|
|
|
mardi 7 mars 2006 à 15:42:55 |
Re : afficher une image jpeg avec la fonction StretchDIBits ?
|
|
mardi 7 mars 2006 à 15:51:02 |
Re : afficher une image jpeg avec la fonction StretchDIBits ?
|
|
mardi 7 mars 2006 à 20:32:49 |
Re : afficher une image jpeg avec la fonction StretchDIBits ?

BruNews
|
VC++ 2005 Express gratuit sur le site de MS. ciao... [ Lien ]BruNews, MVP VC++
|
|
|
Cette discussion est classé dans : image, mov, dd, invoke, eax
Répondre à ce message
Sujets en rapport avec ce message
Aidez moi à traduire une petite fonction assembleur en C (API Windows) [ par skirby ]
Bonjour à tous, J'essaye désespérément de traduire une fonction ASM en C. Le but de cette fonction est de pouvoir utiliser une ressource compilé dans
Une mémoire "read" [ par msteve ]
Bonsoir, Je suis débutant et j'ai recopié un programme test. Je parviens à l'assembler, puis à créer un .exe ; quend je lance l'exe j'obtiens la boîte
declaration externe + news Kmdkit [ par patatalo ]
salut, du nouveau pour les fondus de ring 0 sous NT: http://www.website.masmforum.com/tutorials/kmdtute/ ( kmd = kernel mode drivers ) avec masm32,
exception 13 lors du scan memoire haute [ par patatalo ]
salut, pourquoi ce code de detection de memoire en mode 32 bits sans paging me donne une exception 13 sur certaines cartes meres ( ASUS ) a l'adresse
j'ai un prob avec mon buffer ; ya pas d'amuses gueules (masm32) [ par papiboff ]
bj si je mets le buffer "somme " en dd avec charge eax et que j'ajoute deux 'dec ebx ' , ben , marche pas correctement ; (pêrqué ???? = en french) sv
AT&T erreur de compilation etc... [ par maminovadu75 ]
Bonjour, j'aimerais me mettre a l'assembleur mais j'ai quelque problème.voici mon code morceau de code pour trier un tableau de int : ( mélange de C/C
Quels sont les parametres (nombre, taille...) [ par Renfield ]
Bonjour,on peut appeler RunDll32 pour executer des fonctions contenues dans des dll...j'aimerais m'affranchir de cette étape, mais j'ai pour cela beso
Assembleur et tableau + linux + bof [ par flocic ]
Bonjour, J'ai un petit pb de comprehension, j'ai un programme qui deborde au bout 44 octet à cause d'un depassement d ela taille du tableau. Mais ce
optimisation [ par sajid_morad ]
salut tout le monde , j ai une parti du code en c++, que j ai voulu optimiser , le l ai reécri en asm , mai ça donne pas grand chose, si quelqu un po
Cycles de mov [ par vecchio56 ]
Je me demandais si les instructions suivantes étaient équivalentes en termes de performances, ou si certaines d'entres elles demandaient plus de cycle
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|