image et transparence
Publié : ven. 31/août/2012 12:30
est t'il possible d'afficher une image Transparente avec un texte ecrit dedans ?
(je parle d'image pas de Sprite )
dans cet exemple , on peut jouer sur l'alpha , mais le Cadre (le fond) de mon image reste Noir !
je voudrai pouvoir afficher un Calque transparent , avec un texte dedans (comme Photoshop quoi
)
si cela n'est pas possible, il faudrait que Purebasic integre un mode qui permette de le faire ..
(je parle d'image pas de Sprite )
dans cet exemple , on peut jouer sur l'alpha , mais le Cadre (le fond) de mon image reste Noir !
je voudrai pouvoir afficher un Calque transparent , avec un texte dedans (comme Photoshop quoi

si cela n'est pas possible, il faudrait que Purebasic integre un mode qui permette de le faire ..
Code : Tout sélectionner
Declare OpenWindow_Window()
Declare affiche_image()
;{- Enumerations / DataSections
;{ Windows
Enumeration
#Window
EndEnumeration
;}
;{ Gadgets
Enumeration
#Editor
#image
EndEnumeration
;}
;}
Procedure OpenWindow_Window()
If OpenWindow(#Window, 447, 170, 400, 400, "Test", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
;If CreateGadgetList(WindowID(#Window))
EditorGadget(#Editor, 17, 28, 364, 352)
SetGadgetText(#Editor, "ceci est un editeur ")
;EndIf
EndIf
EndProcedure
OpenWindow_Window()
affiche_image()
;{- Event loop
Repeat
Select WaitWindowEvent(2)
; ///////////////////
Case #PB_Event_Gadget
Select EventGadget()
Case #Editor
EndSelect
; ////////////////////////
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Window
CloseWindow(#Window)
Break
EndSelect
EndSelect
Forever
;
;}
procedure affiche_image()
; on creer une image
if CreateImage(#image,200,40,32)
; on ecrit du texte dedans
StartDrawing(ImageOutput(#image))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(1,1,"Text EXEMPLE",RGB(0,255,0),RGBA(0,0,0,0))
StopDrawing()
Else
MessageRequester("info","pas pu creer l'image")
ProcedureReturn
endif
; on l'affiche sur la fenetre
If IsImage(#image)
StartDrawing(WindowOutput(#Window))
DrawingMode(#PB_2DDrawing_AlphaClip )
DrawAlphaImage(ImageID( #image),200,100,120)
StopDrawing()
endif
delay(5000) ; pendant 5 secondes
; detruit l'image
If IsImage((#image))<>0
FreeImage(#image)
EndIf
endprocedure
; EPB