Page 1 sur 1

[R] Visualiser une image dans une GUI

Posté : mar. 04 févr. 2014 18:38
par franco
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
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 » :mrgreen:

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 :

Code : Tout sélectionner

Global Const $largeur = 200
Global Const $hauteur = 200
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.
@+ ;)

Re: [..] Visualiser une image dans une GUI

Posté : mar. 04 févr. 2014 21:10
par jguinch
En règle générale, on évite de déclarer des variables avec une portée globale à l'intérieure des fonctions.
De plus, une constante ne peut pas être déclarée deux fois.

Dans ta fonction _Viewer, essaye de déclarer $largeur et $hauteur en Local au lieu de Global (et pas en tant que constantes)
Idem pour $Form2 qui ne sert pas ailleurs.
Si tu as besoin d'utiliser ces variables dans une autre fonction, déclare-les en début de script en Global

Re: [..] Visualiser une image dans une GUI

Posté : mar. 04 févr. 2014 22:05
par franco
Salut :)

« une constante ne peut pas être déclarée deux fois. »
Dans le code, je n'ai pas déclaré une constante deux fois. ;)

Pour le reste, je vais essayer d'appliquer ce que tu m'as dis.


@+

Re: [..] Visualiser une image dans une GUI

Posté : mar. 04 févr. 2014 22:07
par franco
Salut.

J'ai déclaré $hauteur et $largeur en local : souci résolu...


Maintenant, j'ai une autre question :
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. :)
Mais je vais potasser avant ;)


Merci :D

Re: [R] Visualiser une image dans une GUI

Posté : mar. 04 févr. 2014 22:14
par jguinch
Dans ton code, quand ta fonction est appelée pour la première fois, ça fait un première déclaration de variable Global
Quand ta fonction est appelée une seconde fois, ça en fait une deuxième... :roll:

Re: [R] Visualiser une image dans une GUI

Posté : mar. 04 févr. 2014 22:28
par franco
Salut.

Ah ok, c'est un aspect que je ne savais pas...

Maintenant, je n'ai plus le droit à l'erreur. :P


@++ et merci.