[ok] RGB et color selector
Publié : mar. 30/juin/2015 18:57
salut
J'ai trouvé un code de LSI que j'ai adapté pour mon soft 2D (pour avoir un sélecteur de couleur).
Mais j'aimerai avoir l'actualisation de la couleur en fonction de la teinte de la couleur RGB choisi dans le requester().
Pour le moment, j'actualise mon sélecteur avec la couleur obtenue et non la teinte ^^.
Mais je ne sais pas comment faire pour avoir la teinte, puis actualiser sur le sélecteur de couleur.
Voici le code :
EDIT : ok, voir la solution au message9
J'ai trouvé un code de LSI que j'ai adapté pour mon soft 2D (pour avoir un sélecteur de couleur).
Mais j'aimerai avoir l'actualisation de la couleur en fonction de la teinte de la couleur RGB choisi dans le requester().
Pour le moment, j'actualise mon sélecteur avec la couleur obtenue et non la teinte ^^.
Mais je ne sais pas comment faire pour avoir la teinte, puis actualiser sur le sélecteur de couleur.
Voici le code :
Code : Tout sélectionner
Enumeration ; gadget
#G_ColorSelector
#G_ColorArcEnCielSelect
#btn_Color
EndEnumeration
Enumeration ; image
#IMAGE_ColorSelector
EndEnumeration
Procedure SetColorSelector(color,x=0,y=0)
Shared cursorX,cursorY
R = Red(color)
G = Green(color)
B = Blue(color)
If StartDrawing(ImageOutput(#IMAGE_ColorSelector))
Box(0,0,256,256,RGBA(255,255,255,255))
DrawingMode(#PB_2DDrawing_AlphaBlend)
For i = 0 To 255
For j = 0 To 255
Plot(i, j, RGBA($FF, $FF, $FF, i))
Plot(i, j, RGBA(0, 0, 0, j))
Next
Next
For i = 0 To 255
For j = 0 To 255
Plot(i, j, RGBA(R, G, B, i))
Plot(i, j, RGBA(0, 0, 0, j))
Next
Next
StopDrawing()
EndIf
If StartDrawing(CanvasOutput(#G_ColorSelector))
Box(0,0,256,256,RGB(255,255,255))
DrawingMode(#PB_2DDrawing_AlphaBlend)
DrawImage(ImageID(#IMAGE_ColorSelector),0,0,GadgetWidth(#G_ColorSelector),GadgetHeight(#G_ColorSelector))
If mode =1
DrawingMode(#PB_2DDrawing_Outlined)
Circle(x,y,8,#White)
Circle(x,y,9,#Black)
cursorX = x
cursorY = y
Else
DrawingMode(#PB_2DDrawing_Outlined)
Circle(cursorX,cursorY,8,#White)
Circle(cursorX,cursorY,9,#Black)
EndIf
StopDrawing()
EndIf
EndProcedure
OpenWindow(0, 0, 0, 600,400, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CreateImage(#IMAGE_ColorSelector,256,256)
CanvasGadget(#G_ColorSelector,10,10,256,256)
SetColorSelector(RGB(241,128,56))
ButtonGadget(#btn_Color, 300,10,100,50,"Change color")
Repeat
Event = WaitWindowEvent()
If event = #PB_Event_Gadget
If EventGadget() = #btn_Color
Color = ColorRequester(color)
SetColorSelector(color)
EndIf
EndIf
Until Event = #PB_Event_CloseWindow