[R] Afficher un PNG sans bug

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

[R] Afficher un PNG sans bug

#1

Message 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.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] Afficher un PNG sans bug

#2

Message 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:
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Afficher un PNG sans bug

#3

Message 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 :).
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] Afficher un PNG sans bug

#4

Message 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/
Modifié en dernier par Yogui le lun. 01 août 2011 22:26, modifié 1 fois.
Raison : Ajout des sources
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Afficher un PNG sans bug

#5

Message par TommyDDR »

Yep, le _SetImage fonctionne.
Merci Yogui !
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Répondre