Afficher qu'une portion d'image dans un ImageGadget

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
pasbel
Messages : 38
Inscription : mer. 10/avr./2019 17:36

Afficher qu'une portion d'image dans un ImageGadget

Message par pasbel »

Salutatous

Je tente d'afficher une portion d'image dans un ImageGadget...

Je crée mon gadget avec ImageGadget() en précisant la taille souhaitée.
Je charge ensuite mon image qui est donc plus grande, et Ô stupeur, le gadget prend la taille de l'image entière.
Je tente donc d'utiliser la commande ResizeGadget(), la taille du gadget (ImageGadget bien sûr... ?) se modifie, mais l'image reste affichée entière.

- est-ce faisable avec un ImageGadget ?

J'ai tenté le Resize avant d'afficher l'image, idem, le gadget prend la taille de l'image.

Bonne soirée à tous
Avatar de l’utilisateur
Mindphazer
Messages : 694
Inscription : mer. 24/août/2005 10:42

Re: Afficher qu'une portion d'image dans un ImageGadget

Message par Mindphazer »

Je pense que tu as meilleur compte à utiliser un CanvasGadget et afficher ton image à l'intérieur, plutôt que d'utiliser un ImageGadget
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: Afficher qu'une portion d'image dans un ImageGadget

Message par Mesa »

Oui, il faut utiliser le cliping, voir l'aide :

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 200, 200, "ClipOutput", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    If CreateImage(0, 200, 200, 24, $FFFFFF) And StartDrawing(ImageOutput(0))

      ClipOutput(50, 50, 100, 100) ; restriction de l'affichage du dessin à cette région
      Circle( 50,  50, 50, $0000FF)  
      Circle( 50, 150, 50, $00FF00)  
      Circle(150,  50, 50, $FF0000)  
      Circle(150, 150, 50, $00FFFF)  
      
      DrawingMode(#PB_2DDrawing_Outlined)
      Box(50, 50, 100, 100, $000000)
         
      StopDrawing() 
      ImageGadget(0, 0, 0, 200, 200, ImageID(0))      
    EndIf
    
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
  EndIf


M.
pasbel
Messages : 38
Inscription : mer. 10/avr./2019 17:36

Re: Afficher qu'une portion d'image dans un ImageGadget

Message par pasbel »

Désolé pour le retard, réponse tombée dans les spams...

Merci pour vos réponses, je vais étudier ça avec soin.
Répondre