Bonjour.
J'ai trouvé un lien qui disait comment
visualiser directement des gifs animés dans une gui.
Voici le lien :
http://www.autoitscript.com/forum/topic ... using-gdi/
Mon idée est de visualiser les images qu'on a sur l'ordinateur
via un GuiCtrlCreateInput.
Car certaines image, comme les gifs animées,
sont réellement visibles que par le navigateur (ou un logiciel permettant de les visualiser).
Le logiciel
paint, par exemple, affiche un
gif fixe quand on
ouvre un gif animé.
J'ai donc créer
ce script :
► Afficher le textecode
Code : Tout sélectionner
#include <_GUIResourcePic.au3>
#include <GUIConstantsEx.au3>
#include <GDIPlus.au3>
#include <WindowsConstants.au3>
Global $Form1 = GUICreate("Form1", 560, 100, 10, 10, -1, $WS_EX_ACCEPTFILES)
GUISetBkColor(0xFFFFFF)
GUICtrlCreateLabel("Glissez / Déposer le fichier image à visualiser", 10, 10, 280, 20)
GUICtrlSetFont(-1, 9, 400, 0, "comic sans ms")
Global $mon_image = GUICtrlCreateInput("", 10, 40, 400, 20)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
$visualiser = GUICtrlCreateButton("visualiser l'image", 430, 40, 120, 20)
$quitter = GUICtrlCreateButton("quitter le programme", 430, 70, 120, 20)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $visualiser
$image = GUICtrlRead($mon_image)
If FileExists(GUICtrlRead($mon_image)) Then _Viewer()
EndSwitch
WEnd
Func _Viewer()
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile($image)
Global Const $largeur = _GDIPlus_ImageGetWidth($hImage)
Global Const $hauteur = _GDIPlus_ImageGetHeight($hImage)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
Global $Form2 = GUICreate("Form2", $largeur, $hauteur, 10, 10)
GUISetBkColor(0xFFFFFF)
_GUICtrlPic_Create($image, 0, 0, $largeur, $hauteur)
GUISetState(@SW_SHOW, $Form2)
Do ; "Faire ce qui suit tout le temps"
$nMsg2 = GUIGetMsg() ; Vérification de ce qui a changé dans l'interface
If $nMsg2 = $GUI_EVENT_CLOSE Then
GUIDelete($Form2)
ExitLoop
EndIf
Until $nMsg2 = $GUI_EVENT_CLOSE
EndFunc ;==>_Viewer
Cela fonctionne : mais si je veux visualiser une autre image, et que j'appuie sur le bouton "visualiser",
l'outil se ferme automatiquement.
J'ai donc testé pour voir
d'où venait le problème...
Et j'ai trouvé le « coupable »
Code : Tout sélectionner
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile($image)
Global Const $largeur = _GDIPlus_ImageGetWidth($hImage)
Global Const $hauteur = _GDIPlus_ImageGetHeight($hImage)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
Si je remplace ce bout de comme par, par exemple :
Je n'ai
plus ce problème.
Pouvez-vous m'indiquer
comment faire pour que l'outil
ne soit pas fermé après d'autres tentatives ?
Peut-être
un autre moyen de trouver les tailles de ces images ?
J'ai même pensé à un GUI
avec ascenseur veritical et horizontal pour
se balader sur l'image. Est-ce possible d'ailleurs ? Cela m'intéresse aussi, je vais approfondir plus tard la chose.
Merci pour vos futures réponses.
@+
