Afficher une image jpeg avec la fonction StretchDIBits ?
cs_mitch19
Messages postés10Date d'inscriptiondimanche 19 octobre 2003StatutMembreDernière intervention31 mars 2007
-
5 mars 2006 à 21:54
cs_mitch19
Messages postés10Date d'inscriptiondimanche 19 octobre 2003StatutMembreDernière intervention31 mars 2007
-
8 mars 2006 à 21:14
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 :
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 5 mars 2006 à 22:42
Je t'ai fait exemple en C ici, tu verras pour traduire en (pseudo) asm, pas le temps.
http://bnmvp.free.fr/ImagesOle.zip Une dialogbox repaint sa surface avec, alternativement par timer, 3 images (jpg, gif et bmp).
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 6 mars 2006 à 21:47
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.
cs_mitch19
Messages postés10Date d'inscriptiondimanche 19 octobre 2003StatutMembreDernière intervention31 mars 2007 8 mars 2006 à 21:14
Ne vous battez pas !
comment pourrais je renseigner les 11 et 12èmes
paramètres (CONST VOID *lpBits, et CONST BITMAPINFO
*lpBitsInfo) la fonction StretchDIBBits pour une image JPEG
(en vue de récupérer les paramètres pour impression futur)
int StretchDIBits(
HDC hdc, // handle to device context
int XDest, // x-coordinate of upper-left corner of dest. rectangle
int YDest, // y-coordinate of upper-left corner of dest. rectangle
int nDestWidth, // width of destination rectangle
int nDestHeight, // height of destination rectangle
int XSrc, // x-coordinate of upper-left corner of source rectangle
int YSrc, // y-coordinate of upper-left corner of source rectangle
int nSrcWidth, // width of source rectangle
int nSrcHeight, // height of source rectangle
CONST VOID *lpBits, // address of bitmap bits
CONST BITMAPINFO *lpBitsInfo, // address of bitmap data
UINT iUsage, // usage flags
DWORD dwRop // raster operation code
);
A partir du code ci dessous est-ce possible ?
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
bmih BITMAPV4HEADER <>
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;