Page 1 sur 1
Créer des fichiers image PNG ou Bitmap avec Autoit
Posté : lun. 18 sept. 2017 20:28
par FDMgameplay
Salut à tous !
Je voudrais savoir s'il est possible de créer des fichiers image type png ou bitmap avec autoit.
Je n'ai rien trouvé à ce sujet et le FileWrite me semble être un peu compliqué à réaliser.
Je remercie d'avance toute personne m'aidant dans ma manœuvre

Re: Créer des fichiers image PNG ou Bitmap avec Autoit
Posté : lun. 18 sept. 2017 21:57
par walkson
Bonjour,
Votre demande est un peu flou
Créer à partir du binaire, d'un chemin, par "Autoit", etc ....?
Je vous invite à regarder la rubrique GDIPlus de l'aide et plus particulièrement les bitmaps
L'exemple ci-dessous est tiré de l'aide (un peu modifié) à partir de _GDIPlus_BitmapCreateFromScan0()
#include <GDIPlus.au3>Example
()Func Example
() _GDIPlus_Startup() Local Const $iW = 460, $iH = 100 Local $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH) ;create an empty bitmap Local $hBmpCtxt = _GDIPlus_ImageGetGraphicsContext($hBitmap) ;get the graphics context of the bitmap _GDIPlus_GraphicsSetSmoothingMode($hBmpCtxt, $GDIP_SMOOTHINGMODE_HIGHQUALITY) _GDIPlus_GraphicsClear($hBmpCtxt, 0xFFFFFF00) ;clear bitmap with color white _GDIPlus_GraphicsDrawString($hBmpCtxt, "AutoIt rulez!", 0, 0, "Comic Sans MS", 52) ;draw some text to the bitmap Local $sFile = @TempDir & "\Test.bmp" _GDIPlus_ImageSaveToFile($hBitmap, $sFile) ;save bitmap to disk ;cleanup GDI+ resources _GDIPlus_GraphicsDispose($hBmpCtxt) _GDIPlus_BitmapDispose($hBitmap) _GDIPlus_Shutdown() ShellExecute($sFile) ;open bitmap with default appEndFunc ;==>Example
Re: Créer des fichiers image PNG ou Bitmap avec Autoit
Posté : mar. 19 sept. 2017 18:40
par FDMgameplay
Merci de m'avoir répondu
Pour être plus précis sur ma demande, je souhaiterai générer une image à l'aide d'une fonction autoit :
If <une action dans mon programme
> Then ;créer un pixel noir aux coordonnées données sur un fichier .png ou autre format d'image (de préférence png)Else ;créer un pixel blanc aux coordonnées données sur un fichier .png ou autre format d'image (de préférence png)EndIf
L'objectif final est de générer une image complète avec l'algorithme que je suis en train de mettre au point
Re: Créer des fichiers image PNG ou Bitmap avec Autoit
Posté : mar. 19 sept. 2017 18:45
par FDMgameplay
Je vais regarder GDIplus, j'ai l'impression que cela pourrait m'être utile mais je ne comprends pas encore comment parfaitement l'utiliser.
Je te tiens au courant
Re: Créer des fichiers image PNG ou Bitmap avec Autoit
Posté : mer. 20 sept. 2017 14:44
par FDMgameplay
Ok alors j'ai enfin compris tout le fonctionnement de GDIPlus et c'est formidable ! c'est exactement ce qu'il me fallait
Voici mon code :
Mais le problème c'est que lorsque la fonction est censé dessiner un carré de 4x4 pixels noirs ( $color = 0xFF000000) sur le fond blanc de l'image (_GDIPlus_GraphicsClear($hBmpCtxt, 0xFFFFFFFF) ) il ne se passe rien.
J'ai cherché et je ne trouve pas d'erreurs pourtant.
Quelqu'un pourrait m'aider ?
EDIT : Je tiens à préciser que l'image se crée bien avec le fond blanc mais il n'y a pas le carré de 4x4 pixels noir qui s'affiche
Re: Créer des fichiers image PNG ou Bitmap avec Autoit
Posté : mer. 20 sept. 2017 20:44
par FDMgameplay
Ok j'ai trouvé mon erreur ^^
dans le _GDIPlus_GraphicsFillRect( $hBmpCtxt, $zX, $zY, 4, 4, $Brush ) j'avais mis en première variable $hBitmap à la place de $hBmpCtxt
Autant pour moi !
A présent j'ai un autre problème qui se pose : j'aimerais que au fur et à mesure de mon algorithme, ce dessin se remplisse peu à peu. Le problème avec la fonction que j'ai faite, c'est qu'à chaque fois qu'elle est appelée, elle n'édite pas l'image mais elle la remplace par une nouvelle.
Comment régler ce problème ?
Re: Créer des fichiers image PNG ou Bitmap avec Autoit
Posté : sam. 30 sept. 2017 23:32
par FDMgameplay
Rebonjour !j'ai réglé ce problème de la manière suivante :
A chaque fois qu'une nouvelle boucle est effectuée, j'utilise la fonction
_GDIPlus_GraphicsDrawImage qui permet de récupérer l'image créée lors de la boucle précédente et de l'éditer en dessinant par dessus à certains endroits.
Je marque ce sujet comme résolu
