Page 1 sur 1

Centrer une image dans un ImageGadget

Publié : dim. 22/sept./2013 16:34
par NY152
Bonjour,

J'avoue sécher un peu sur le pourquoi du comment. Comment fait-on pour centrer une image dans un ImageGadget ?

Désolé de poser une question si basique, je programme rarement des interfaces graphiques.

D'avance, merci

Re: Centrer une image dans un ImageGadget

Publié : dim. 22/sept./2013 16:45
par nico
Si tu veux rester avec du code Purebasic, il te suffit de modifier l'image avec les commandes de découpes de Purebasic avec GrabImage par exemple.

Re: Centrer une image dans un ImageGadget

Publié : dim. 22/sept./2013 16:54
par NY152
Découper l'image pour la centrer ? Même si elle est plus petite ?

J'avoue de pas comprendre ...

Un simple flag aurait été trop simple lol

Re: Centrer une image dans un ImageGadget

Publié : dim. 22/sept./2013 17:38
par nico
Découper l'image pour la centrer ? Même si elle est plus petite ?
C'est moi qui ne comprend pas du coup; si t'as besoin de centrer une image, c'est bien qu'elle est plus grande que nécessaire?

Re: Centrer une image dans un ImageGadget

Publié : dim. 22/sept./2013 17:44
par NY152
Ben non quand mon image est plus petite que le gadget, je veux la centrer au milieu de celui-ci :)

Si l'image était plus grand, là je la découperais pour la recadrer :)

Re: Centrer une image dans un ImageGadget

Publié : dim. 22/sept./2013 17:52
par omega
Bonjour,

Je crois que les paramètres (Largeur et Longueur) sont prévus pour ça; je dis bien JE CROIS, je dois faire un vrai test pour en être sûr...

Rappel de la syntaxe:
ImageGadget(0, col, ligne, Largeur, Hauteur, ImageID (0))

bonne continuation

Re: Centrer une image dans un ImageGadget

Publié : dim. 22/sept./2013 17:56
par nico
Ben non quand mon image est plus petite que le gadget, je veux la centrer au milieu de celui-ci
C'est toujours incompréhensible ton histoire, bon j'arrête là le dialogue de sourd.

Extrait de l'aide:
Le gadget ajuste sa largeur et sa hauteur pour s'adapter à l'image affichée.

La largeur et la hauteur spécifiées ne sont utilisés que si aucune image ne s'affiche.

Re: Centrer une image dans un ImageGadget

Publié : dim. 22/sept./2013 17:57
par Backup
.....

Re: Centrer une image dans un ImageGadget

Publié : dim. 22/sept./2013 18:45
par NY152
Le gadget étant lui même centré sur la fenêtre, ça commence à faire beaucoup lol

Ce code excentrera le gadget et donc l'image sur la fenêtre.

Y a pas plus simple ?

Re: Centrer une image dans un ImageGadget

Publié : dim. 22/sept./2013 19:07
par falsam
Bonjour NY152. Centrer une image dans un ImageGadget est nativement pas possible car le gadget ajuste sa largeur et sa hauteur pour s'adapter à l'image affichée
NY152 a écrit :Y a pas plus simple ?
Donc non :)

J'ajoute un tout petit code qui va chercher une image de 16x17 dans les exemple pour l'afficher dans dans une imagegadget de 100x100 : L'imagegadget sera ajusté à 16x17

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 245, 105, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  SetWindowColor(0, RGB(255, 215, 0))
  If LoadImage(0, #PB_Compiler_Home + "Examples\Sources\Data\Drive.bmp")
    ImageGadget(0, 10, 10, 100, 100, ImageID(0))
  EndIf
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Tu peux essayer aussi en remplaçant ImageGadget(0, 10, 10, 100, 100, ImageID(0)) par ImageGadget(0, 10, 10, 0, 0, ImageID(0)) le résultat sera le même. Tu aurais bien voulu un flag #PB_Center hein ? et bien non. Ca serait trop facile :mrgreen:

Re: Centrer une image dans un ImageGadget

Publié : dim. 22/sept./2013 19:22
par falsam
Quelques minute plus tard .....
je suppose que tu voulais un truc de ce genre mais avec
-Un flag pour dire pas de resize du gadget image
-et un autre pout centrer l'ImageId
?

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 245, 125, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  SetWindowColor(0, RGB(255, 215, 0))
  If LoadImage(0, #PB_Compiler_Home + "Examples\Sources\Data\Drive.bmp")    
    hwnd = CreateWindowEx_(0,"Static","",#SS_CENTERIMAGE|#SS_BITMAP|#WS_CHILD|#WS_VISIBLE,10,10,100,100,WindowID(0),1,GetModuleHandle_(0),0)
    SendMessage_(hwnd,#STM_SETIMAGE,#IMAGE_BITMAP,ImageID(0))
  EndIf
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
C'est une solution Windows Only mais ça fonctionne :)

Re: Centrer une image dans un ImageGadget

Publié : dim. 22/sept./2013 19:35
par NY152
Merci pour ces aides, je vais tenter de faire avec :)

Pour l'exemple "Windows Only", il ne me servira pas car je suis sur une application Linux/Windows mais ton exemple servira, j'en suis sur à ceux qui sont exclusivement sous Windows :)

Re: Centrer une image dans un ImageGadget

Publié : dim. 22/sept./2013 19:38
par Backup
.......

Re: Centrer une image dans un ImageGadget

Publié : dim. 22/sept./2013 20:23
par NY152
Merci de ton aide, j'ai réussis à me dépatouiller avec ça. Il ne me restera plus qu'à automatiser ça sur un gadget déjà en place. Encore merci :)