Page 1 sur 1
[..] Ecrire dans une image dans GDI +
Posté : mar. 08 juil. 2014 15:05
par Capablanca
Bonjour,
Je suis un débutant total dans ce langage qui a l'air très séduisant.
Je ne peux que remercier le site pour un forum français et, plus encore, pour la doc en français, plus qu'indispensable pour moi car je galère vraiment en anglais.
Voilà mon problème :
Je souhaite exploiter GDI + et je souhaite écrire dans une image au fur et à mesure des besoins, pas remplacer l'ancien graphique.
Si je fais un DrawImage(....) j'écris bien dans le Graphic Objet mais je veux, moi écrire dans une image et superposer le graphique, au fur et à mesure des besoins.
Certes, je vais bien superposer le graphique dans le Graphic Objet mais je veux le conserver dans une image.
Merci de m'aider...
Re: [..] Ecrire dans une image dans GDI +
Posté : mer. 09 juil. 2014 00:09
par mikell
Heu oui, et concrètement/en pratique tu souhaites faire/obtenir quoi ? tu as fait un début de code ?
Re: [..] Ecrire dans une image dans GDI +
Posté : mer. 09 juil. 2014 14:22
par Capablanca
Je suis dans un lieu public et je ne peux donner de code car je n'ai pas accès à un port USB mais je dis de mémoire mon problème.
Je souhaite utiliser GDI+.
Je n'ai pas trouvé d'instruction GDI+, dans AutoIt, qui me permette d'écrire un graphique dans une image. En vérité, je souhaite pouvoir faire ce que je fais dans le Graphic Objet mais dans une image (un handleBitmap je suppose).
Je sais qu'il est possible d'écrire un graphique directement dans une image sans effacer son contenu mais en superposant les graphiques au fur et à mesure, comme on le ferait en écrivant dans un Graphic Objet.
Merci de l'aide.
Re: [..] Ecrire dans une image dans GDI +
Posté : mer. 09 juil. 2014 14:46
par Capablanca
Pour compléter ce que j'ai écris plus haut.
Je souhaite faire un jeu.
Une solution pour moi serait de pouvoir copier le contenu du Graphic Objet dans un handleBitmap, comme on le ferait avec GDI :
_WinAPI_BitBlt(hgraphic,0,0,600,600,hDC,0,0) => copie le contenu du DC dans une image.
Une autre solution, pouvoir écrire directement dans une image, comme par exemple avec GDI :
_WinAPI_BitBlt(hgraphicdest,0,0,600,600,hgraphicsource,0,0)
J'arrive à faire ce que je veux en GDI mais pas en GDI +.
Merci de l'aide.
Re: [..] Ecrire dans une image dans GDI +
Posté : mer. 16 juil. 2014 09:39
par overflow
regarde cette fonction : _GDIPlus_GraphicsDrawImageRect dans l aide
Re: [..] Ecrire dans une image dans GDI +
Posté : mer. 16 juil. 2014 14:50
par Capablanca
Merci overflow.
J'avais pas compris la commande GDI+.
Faut dire que je débute dans cette bibliothèque, étant plus habitué à GDI.
Re: [..] Ecrire dans une image dans GDI +
Posté : mer. 27 août 2014 14:36
par Capablanca
J'ai regardé de plus près la commande _GDIPlus_GraphicsDrawImageRect(---).
En fait, cette commande permet de mettre dans le Graphic Objet (l'équivalent du DC pour GDI) une portion d'une image. Pour l'image complète on fait tout simplement : _GDIPlus_GraphicsDrawImage(---).
Tout cela donc dans le Graphic Objet.
Mais comment faire pour dessiner, voire mettre une image, dans une autre image en GDI+ ?
En GDI cela peut donner par exemple :
_WinAPI_BitBlt(hgraphicdest,0,0,600,600,hgraphicsource,0,0)
Où hgraphicsource est le handle source de l'image qu'on dépose dans le handle destination hgraphicdest.
Cela n'est pas déposé dans le DC mais bien dans le handle de destination.
Or toutes les commandes GDI+ semblent mettre dessins et images systématiquement dans le Graphic Objet.
S'il n'y a pas de solution, il me reste à faire la copie comme en GDI et par une commande GDI+ récupérer le handle Bitmap via le handle GDI.
Qu'en pensez-vous et peut-on éviter de passer par GDI ?
Re: [..] Ecrire dans une image dans GDI +
Posté : jeu. 28 août 2014 09:45
par ani
Bien le bonjour
regardez dans le dossier de autoit > example > Gui > Avanced
y a deux trois exemple.
la je vais vous relire, car hm pas suivit ^^' ze dort encore un peu

Re: [..] Ecrire dans une image dans GDI +
Posté : sam. 30 août 2014 13:47
par Capablanca
J'avais fini par trouver grâce aux exemples fournis par AutoIt.
Merci quand même.