Image Survival Guide
Publié : mar. 02/août/2016 16:41
Un code que j'ai récupéré sur un site consacré à Purebasic il y a deux ou trois ans. Il me sert quand je rencontre des soucis d'écritures dans des images ou des sprites. Source quelques part sur ce lien :
http://www.ninelizards.com/purebasic/index.htm#top
Code : Tout sélectionner
; survival guide 6_3_200 drawing mode
; pb 4.40 - > 5.43
;
Enumeration
#w_main
#g_image
#i_result
EndEnumeration
;
OpenWindow(#w_main,10,10,870,6*130,"Test",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
AddKeyboardShortcut(#w_main,#PB_Shortcut_Escape,1)
CreateImage(#i_result,870,6*130,32)
;
StartDrawing(ImageOutput(#i_result))
;
; top half black
;
DrawingMode(#PB_2DDrawing_Default)
Box(0,0,870,6*130,RGB(0,0,0))
;
; first section transparent (alhpa 0)
;
DrawingMode(#PB_2DDrawing_AlphaChannel)
Box(0,0*130,870,3*130,RGBA(0,0,0,0))
DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
DrawText(10,1*130-125,"fully transparent black background",RGBA(255,255,255,255))
;
; second section half solid (alpha 128)
;
DrawingMode(#PB_2DDrawing_AlphaChannel)
Box(0,1*130,870,130,RGBA(0,0,0,128))
DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
DrawText(10,2*130-125,"half transparent black background",RGBA(255,255,255,255))
;
; third section solid (alpha 255)
;
DrawingMode(#PB_2DDrawing_AlphaChannel)
Box(0,2*130,870,130,RGBA(0,0,0,255))
DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
DrawText(10,3*130-125,"solid black background",RGBA(255,255,255,255))
;
; bottom half white
;
DrawingMode(#PB_2DDrawing_Default)
Box(0,3*130,870,3*130,RGB(255,255,255))
;
; fourth section transparent (alhpa 0)
;
DrawingMode(#PB_2DDrawing_AlphaChannel)
Box(0,3*130,870,130,RGBA(0,0,0,0))
DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
DrawText(10,4*130-125,"fully transparent white background",RGBA(0,0,0,255))
;
; fifth section half solid (alpha 128)
;
DrawingMode(#PB_2DDrawing_AlphaChannel)
Box(0,4*130,870,130,RGBA(0,0,0,128))
DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
DrawText(10,5*130-125,"half transparent white background",RGBA(0,0,0,255))
;
; sixth section solid (alpha 255)
;
DrawingMode(#PB_2DDrawing_AlphaChannel)
Box(0,5*130,870,130,RGBA(0,0,0,255))
DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
DrawText(10,6*130-125,"solid white background",RGBA(0,0,0,255))
;
For row = 0 To 5
;
x = 10
y = 50+row*130
;
DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
DrawText(x,y-25,"default",RGBA(255,0,0,255))
DrawingMode(#PB_2DDrawing_Default)
Box(x,y,40,40,RGBA(255,0,0,255))
Box(x+10,y+10,40,40,RGBA(255,0,0,128))
Box(x+20,y+20,40,40,RGBA(255,0,0,128))
Box(x+30,y+30,40,40,RGBA(255,0,0,0))
;
x = x+130
DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
DrawText(x,y-25,"transparent",RGBA(255,0,0,255))
DrawingMode(#PB_2DDrawing_Transparent)
Box(x,y,40,40,RGBA(255,0,0,255))
Box(x+10,y+10,40,40,RGBA(255,0,0,128))
Box(x+20,y+20,40,40,RGBA(255,0,0,128))
Box(x+30,y+30,40,40,RGBA(255,0,0,0))
;
x = x+130
DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
DrawText(x,y-25,"xor",RGBA(255,0,0,255))
DrawingMode(#PB_2DDrawing_XOr)
Box(x,y,40,40,RGBA(255,0,0,255))
Box(x+10,y+10,40,40,RGBA(255,0,0,128))
Box(x+20,y+20,40,40,RGBA(255,0,0,128))
Box(x+30,y+30,40,40,RGBA(255,0,0,0))
;
x = x+130
DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
DrawText(x,y-25,"outlined",RGBA(255,0,0,255))
DrawingMode(#PB_2DDrawing_Outlined)
Box(x,y,40,40,RGBA(255,0,0,255))
Box(x+10,y+10,40,40,RGBA(255,0,0,128))
Box(x+20,y+20,40,40,RGBA(255,0,0,128))
Box(x+30,y+30,40,40,RGBA(255,0,0,0))
;
x = x+130
DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
DrawText(x,y-25,"blend",RGBA(255,0,0,255))
DrawingMode(#PB_2DDrawing_AlphaBlend)
Box(x,y,40,40,RGBA(255,0,0,255))
Box(x+10,y+10,40,40,RGBA(255,0,0,128))
Box(x+20,y+20,40,40,RGBA(255,0,0,128))
Box(x+30,y+30,40,40,RGBA(255,0,0,0))
;
x = x+130
DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
DrawText(x,y-25,"clip",RGBA(255,0,0,255))
DrawingMode(#PB_2DDrawing_AlphaClip)
Box(x,y,40,40,RGBA(255,0,0,255))
Box(x+10,y+10,40,40,RGBA(255,0,0,128))
Box(x+20,y+20,40,40,RGBA(255,0,0,128))
Box(x+30,y+30,40,40,RGBA(255,0,0,0))
;
x = x+130
DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
DrawText(x,y-25,"channel",RGBA(255,0,0,255))
DrawingMode(#PB_2DDrawing_AlphaChannel)
Box(x,y,40,40,RGBA(255,0,0,255))
Box(x+10,y+10,40,40,RGBA(255,0,0,128))
Box(x+20,y+20,40,40,RGBA(255,0,0,128))
Box(x+30,y+30,40,40,RGBA(255,0,0,0))
;
Next row
StopDrawing()
;
ImageGadget(#g_image,0,0,870,6*130,ImageID(#i_result))
Repeat
event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow Or event = #PB_Event_Menu
http://www.ninelizards.com/purebasic/index.htm#top