Page 1 sur 1

[R] Afficher un PNG sans bug

Posté : lun. 01 août 2011 21:19
par TommyDDR
Je vous vois venir, avec vos grand sabots !
"Et la fonction recherche tu l'as vue ?"
Je vous arrête donc et vous invite à lire jusqu'au bout.

Après plusieurs recherches (Héhé :wink: ) j'ai trouvé un code qui me satisfait amplement pour afficher un png :
► Afficher le textecode
Mettez un png à coté du script et exécutez le.

Prenez votre GUI et déplacez la pour qu'elle sorte de l'écran puis ramenez la dans le champ de vision.
Vous constaterez que la partie de l'image qui est sortie de l'écran ne se redessine plus.

Ma question est donc :
Que doit-on rajouter dans le code pour que le PNG ne s'efface pas en sortant de l'écran ?

Merci.

Re: [..] Afficher un PNG sans bug

Posté : lun. 01 août 2011 21:55
par Yogui

Code : Tout sélectionner

#include <GDIPlus.au3>
#include <GuiConstantsEx.au3>

Opt("MustDeclareVars", 1)

Global $hGUI, $hImage, $hGraphic

; Create GUI
$hGUI = GUICreate("Show PNG", 350, 160)
GUISetBkColor(0x000000)
GUISetState()

; Load PNG image
_GDIPlus_StartUp()
$hImage   = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\y.png")

; Draw PNG image
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)


; Loop until user exits
do
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hImage, 0, 0, 350, 160)
until GUIGetMsg() = $GUI_EVENT_CLOSE

; Clean up resources
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_ShutDown()
franchement il doit y avoir un vrai moyen :arrow:

Re: [..] Afficher un PNG sans bug

Posté : lun. 01 août 2011 22:01
par TommyDDR
Ah oui, j'ai oublié de préciser :

Y a t-il une solution autre que

Code : Tout sélectionner

_GDIPlus_GraphicsDrawImageRect($hGraphic, $hImage, 0, 0, 350, 160)
Car s'il y a de la semi-transparence, alors celle-ci se superposera à chaque _GDIPlus_GraphicsDrawImageRect et disparait pour laissé un paté répugnant :).

Re: [..] Afficher un PNG sans bug

Posté : lun. 01 août 2011 22:26
par Yogui
un truc comme ça :

Code : Tout sélectionner

#Include <Icons.au3>
$hForm = GUICreate('MyGUI', 178, 192)
GUICtrlCreatePic('index.jpeg', 0, 0, 178, 192)
$Pic = GUICtrlCreatePic('', 65, 60, 48, 48)
_SetImage($Pic, 'y.png')
GUISetState()
Do
Until GUIGetMsg() = -3
Exemple et include ici :

http://www.autoitscript.com/forum/topic ... icons-au3/

Re: [..] Afficher un PNG sans bug

Posté : lun. 01 août 2011 23:10
par TommyDDR
Yep, le _SetImage fonctionne.
Merci Yogui !