[RESOLU]Supprimer image après drawimage

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
omega
Messages : 617
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

[RESOLU]Supprimer image après drawimage

Message par omega »

Bonsoir,

Y a t-il un moyen de supprimer une image créée avec DrawImage? J'ai essayé FreeImage() mais sans succès.

Merci
Dernière modification par omega le sam. 10/avr./2021 0:31, modifié 1 fois.
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
case
Messages : 1527
Inscription : lun. 10/sept./2007 11:13

Re: Supprimer image après drawimage

Message par case »

bonsoir,

drawimage ne crée pas d'image mais affiche une image déjà crée sur la sortie graphique comme un screen/un canvas /une autre image
préalablement defini comme sortie graphique avec startdrawing()

freeimage efface l'image de la memoire, mais n'efface en rien ce qui a ete dessine avec.
pour cela il faut redessiner a l'endroit ou on a dessine avec drawimage autre chose.

par exemple redessiner l'image precedement affichee, un rectangle de la couleur de fond etc
ImageImage
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: Supprimer image après drawimage

Message par kernadec »

salut à tous
Peut être utiliser la solution de dessiner une box dessus :idea:
Cordialement

Code : Tout sélectionner

Procedure Affiche_image(couleor)
  StartDrawing(ImageOutput(0))
  DrawingMode(#PB_2DDrawing_Default)
  Box(0,0,400,400, couleor)
  StopDrawing() 
  ImageGadget(0, 0, 0, 400, 400,ImageID(0))
  SetGadgetState(0, ImageID(0))
EndProcedure

If OpenWindow(0, 0, 0,400,400, "Efface Image Fenêtre", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  If CreateMenu(0,WindowID(0))
    MenuTitle("Image")
    MenuItem(1, "Image")
    MenuItem(2, "Efface") 
  EndIf
  Repeat
    event = WaitWindowEvent()
    Select Event
      Case #PB_Event_Menu      
        Select EventMenu() 
          Case 1
            CreateImage(0,400,400,32)
            Affiche_image(RGBA(Random(255),Random(255),Random(255),Random(255)))
          Case 2
            If IsImage(0)
              Affiche_image(#White)
              FreeImage(0)
            EndIf 
        EndSelect
    EndSelect
  Until Event = #PB_Event_CloseWindow
EndIf
End
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Supprimer image après drawimage

Message par blendman »

salut

une chose importante à savoir, si tu fais des opérations de dessin (drawalphaimage(), drawimage(), circle(), box(), etc...) sur les images, le canvas, le screen, etc.. c'est que si tu souhaites afficher (ou sauvegarder) les images en question avec un canal alpha (transparence), tu dois effacer avec RGBA().

par exemple, si tu souhaites afficher une images transparente (une personne) sur un fond ( un décor), il faudra ensuite tout effacer avec si tu change d'image et que tu veux uniquement afficher une image transparente (un personnage) :

Code : Tout sélectionner


If StartDrawing(ImageOutput(0))
  ; pour effacer tout, y compris le canal alpha (donc rendre l'image 0 complètement transparente
  DrawingMode(#PB_2DDrawing_AllChannels)
  Box(0, 0, OutputWidth(), OutputHeight(), RGBA(0,0,0,0))
  StopDrawing()
EndIf

Avatar de l’utilisateur
omega
Messages : 617
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: Supprimer image après drawimage

Message par omega »

C'est exactement ce que j'ai fait en attendant une meilleure solution.

Merci à tous de votre aide
Win7 (x64) 64 bits Pb 5.72
Répondre