[R] Agrandir une image dans interface avec GIFANIMATION
Posté : mar. 14 juil. 2020 19:45
Bonjour.
Suite à un projet de visualisation d'image (et aussi de gif animé), j'aimerais trouver un moyen de "redimensionner" l'interface (GUI) ET l'image concernée également.
J'utilise donc GIFAnimation
- https://code.google.com/archive/p/gif-a ... /downloads
- https://www.autoitscript.com/forum/topi ... animation/
Je pensais y arriver, mais, à ma grande surprise : l'image redimensionnée l'est mal.
- Soit elle sort (un peu) du cadre.
- Soit tronquée
- Soit "réduite".
Voici le code en question - que j'ai volontairement réduit autant que possible, afin de me consacrer uniquement au sujet.
l'image utilisée en question : https://i.imgur.com/ch3t4i0.gif
Petite remarque : quand il s'agit d'image animé, c'est là que survient le souci.
Sinon, non.
Pouvez-vous me dire où j'ai "foiré" ?
Peut-être qu'il y a un moyen plus simple, mais honnêtement, même si c'est pas au point, c'est le seul qui arrive à ce résultat. ^^
Merci pour vos réponses.
++
Suite à un projet de visualisation d'image (et aussi de gif animé), j'aimerais trouver un moyen de "redimensionner" l'interface (GUI) ET l'image concernée également.
J'utilise donc GIFAnimation
- https://code.google.com/archive/p/gif-a ... /downloads
- https://www.autoitscript.com/forum/topi ... animation/
Je pensais y arriver, mais, à ma grande surprise : l'image redimensionnée l'est mal.
- Soit elle sort (un peu) du cadre.
- Soit tronquée
- Soit "réduite".
Voici le code en question - que j'ai volontairement réduit autant que possible, afin de me consacrer uniquement au sujet.
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include <GIFAnimation.au3>
$image = 'carre.gif'
Global $Form1 = GUICreate("Form1", 200, 200, 192, 124, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))
GUISetBkColor(0xFFFFFF, $Form1)
$img = _GUICtrlCreateGIF($image, "", 0, 0, 200, 200)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $GUI_EVENT_RESIZED
$pos = WinGetPos($Form1)
$NLargeur = $pos[2]
$NHauteur = $pos[3]
_GIF_DeleteGIF($img)
$img = _GUICtrlCreateGIF($image, "", 0, 0, $NLargeur, $NHauteur)
GUISetBkColor(0xFFFFFF, $Form1)
_WinAPI_SetLayeredWindowAttributes($Form1, 0xFFFFFF, 250)
EndSwitch
WEnd
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include <GIFAnimation.au3>
$image = 'carre.gif'
Global $Form1 = GUICreate("Form1", 200, 200, 192, 124, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))
GUISetBkColor(0xFFFFFF, $Form1)
$img = _GUICtrlCreateGIF($image, "", 0, 0, 200, 200)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $GUI_EVENT_RESIZED
$pos = WinGetPos($Form1)
$NLargeur = $pos[2]
$NHauteur = $pos[3]
_GIF_DeleteGIF($img)
$img = _GUICtrlCreateGIF($image, "", 0, 0, $NLargeur, $NHauteur)
GUISetBkColor(0xFFFFFF, $Form1)
_WinAPI_SetLayeredWindowAttributes($Form1, 0xFFFFFF, 250)
EndSwitch
WEnd
Sinon, non.
Pouvez-vous me dire où j'ai "foiré" ?
Peut-être qu'il y a un moyen plus simple, mais honnêtement, même si c'est pas au point, c'est le seul qui arrive à ce résultat. ^^
Merci pour vos réponses.
++