Bonsoir,
Y a t-il un moyen de supprimer une image créée avec DrawImage? J'ai essayé FreeImage() mais sans succès.
Merci
[RESOLU]Supprimer image après drawimage
[RESOLU]Supprimer image après drawimage
Dernière modification par omega le sam. 10/avr./2021 0:31, modifié 1 fois.
Win7 (x64) 64 bits Pb 5.72
Re: Supprimer image après drawimage
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
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
Re: Supprimer image après drawimage
salut à tous
Peut être utiliser la solution de dessiner une box dessus
Cordialement
Peut être utiliser la solution de dessiner une box dessus
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
Re: Supprimer image après drawimage
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) :
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
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: Supprimer image après drawimage
C'est exactement ce que j'ai fait en attendant une meilleure solution.
Merci à tous de votre aide
Merci à tous de votre aide
Win7 (x64) 64 bits Pb 5.72