Color Picker von ???
Hi!
Habe mal einen kleinen Color Picker geproggt bei dem man mit der Maus aus einer Palette eine Farbe wählen kann.

Das Programm zeigt an:
RGB-Werte
Farbcode für Befehle wie Writepixel(fast)
Helligkeit der Farbe in % (wozu weiss ich selbst nicht :wink: )

Steuerung:
Maus: Farbe wählen
+/-: gewählte Farbe heller/dunkler
M: Mix-Modus (anschließend auf Farbe klicken die zur gewählten Farbe gemixt werden soll)

[code:1:8a2e1f8ef5]
Graphics 320,240,32,2
AppTitle "Color Picker 1.0 ©by Unreal Software"

;----------------------------------------------------------Definieren
Global r ;Rotwert
Global g ;Grünwert
Global b ;Blauwert
Global r2 ;Rotwert 2
Global g2 ;Grünwert 2
Global b2 ;Blauwert 2
Global x ;Xpos
Global y ;Ypos
Global colormap ;Image für die Colormap
Global st ;Color-Mix Step
Global li ;Color-Line
Global l2 ;Color-Line to
Global br ;Brightness
Global font ;Schrift
Global ui_bw ;Black/white (nur für Anzeige)
Global ui_bd ;Brighter/Darker (nur für Anzeige)
Global ui_t$ ;Text (nur für Anzeige)
Global ui_tf ;Textflip (nur für Anzeige)
Global math$ ;Berrechnungs-Integer
Global math2# ;Berrechnungs-Float
Global mode ;Mouse-Mode



;----------------------------------------------------------Einstellen
r=255 ;Rot am Anfang 255
g=0 ;Grün am Anfang 0
b=0 ;Blau am Anfang 0

x=10 ;Bei X 10 anfangen
y=10 ;Bei Y 10 anfangen

st=1 ;Color-Mix Step 1 (Grün größer)
li=0 ;Line auf 0
l2=0 ;Line to auf 0

font=LoadFont ("Arial", 14)


;----------------------------------------------------------Color Map erstellen
;Farbtöne zeichnen
For y=10 To 140
For x=10 To 265
Select st ;Horizontale Farbänderung
Case 1 If g<255 Then g=g+5 Else st=st+1 ;1. Grün größer / Next Step
Case 2 If r>0 Then r=r-5 Else st=st+1 ;2. Rot kleiner / Next Step
Case 3 If b<255 Then b=b+5 Else st=st+1 ;3. Blau größer / Next Step
Case 4 If g>0 Then g=g-5 Else st=st+1 ;4. Grün kleiner / Next Step
Case 5 If r<255 Then r=r+5 Else st=st+1 ;5. Rot größer / Next Step
Case 6 If b>0 Then b=b-5 Else st=st+1 ;6. Blau kleiner / Next Step
End Select
r2=r
g2=g
b2=b
l2=0
While l2<li ;Vertikale Farbänderung
l2=l2+1 ;
If r2>127 Then r2=r2-1 ;
If r2<127 Then r2=r2+1 ;
If g2>127 Then g2=g2-1 ;
If g2<127 Then g2=g2+1 ;
If b2>127 Then b2=b2-1 ;
If b2<127 Then b2=b2+1 ;
Wend ;
Color r2,g2,b2
Plot x,y ;Punkt zeichnen
Next
li=li+1 ;Nächste Reihe
r=255 ;Rot auf 255
g=0 ;Grün auf 0
b=0 ;Blau auf 0
st=1 ;Step zurücksetzen
Next
;Speichern
colormap=CreateImage(255,130) ;Leeres Image erstellen
GrabImage colormap,10,10 ;Colormap in Image speichern


;----------------------------------------------------------Runtime vorbereiten
r=0
g=0
b=0
r2=0
g2=0
b2=0
rgb=0
br=0
SetFont font
SetBuffer BackBuffer()



;----------------------------------------------------------Runtime
Repeat
Cls

;Colormap zeichnen
DrawBlock colormap,10,10

;Infos schreiben
Color 255,255,255
Text 15, 145, "R: "+r
Text 15, 155, "G: "+g
Text 15, 165, "B: "+b
Text 15, 175, "Code: "+rgb
Text 185, 210, "Brightness: "+br+"%"

;Gewählte Farbe und anderes Zeugs schreiben
Color r,g,b
Rect 185,150,80,30
If ui_bd=0 Then ui_bw=ui_bw+5
If ui_bd=1 Then ui_bw=ui_bw-5
If ui_bw=0 Then
ui_bd=0
Select ui_tf
Case 0 ui_t$="Welcome to"
Case 1 ui_t$="the Color Picker"
Case 2 ui_t$="©by Unreal Software, 2002"
Case 3 ui_t$=""
Case 5 ui_t$="Click into"
Case 6 ui_t$="the window"
Case 7 ui_t$="to select"
Case 8 ui_t$="a color!"
Case 9 ui_t$=""
Case 10 ui_t$="Use + or -"
Case 11 ui_t$="to make your"
Case 12 ui_t$="color brighter"
Case 13 ui_t$="or darker!"
Case 14 ui_t$=""
Case 15 ui_t$="Select a color,"
Case 16 ui_t$="press M and"
Case 17 ui_t$="select another color"
Case 18 ui_t$="to mix them!"
Case 19 ui_t$=""
Case 20 ui_t$="THX 4 using"
Case 21 ui_t$="this tool!"
Case 22 ui_t$="PLZ visit us @"
Case 23 ui_t$="www.unrealsoftware.de.vu"
Case 26 ui_t$=""
End Select
ui_tf=ui_tf+1
If ui_tf=30 Then ui_tf=0
EndIf
If ui_bw=255 Then ui_bd=1
Color ui_bw,ui_bw,ui_bw
Rect 185,150,80,30,0
Text 15, 210, ui_t$
If mode=1 Then Text MouseX()+30, MouseY(), "mix selected color with..."


;Mausklick
If GetMouse()<>0 Then
Select mode
;Mode 0: Farbe wählen
Case 0
GetColor (MouseX(),MouseY())
r=ColorRed()
g=ColorGreen()
b=ColorBlue()
rgb=ReadPixel(MouseX(),MouseY())
math2#=r+g+b
math$=(math2#/765)*100
br=math$
;Mode 1: Farben mixen
Case 1
GetColor (MouseX(),MouseY())
r2=ColorRed()
g2=ColorGreen()
b2=ColorBlue()
r=(r/2)+(r2/2)
g=(g/2)+(g2/2)
b=(b/2)+(b2/2)
math2#=r+g+b
math$=(math2#/765)*100
br=math$
mode=0
Color r,g,b
Rect 185,150,80,30
rgb=ReadPixel(200, 160)
End Select
EndIf

;Tasten
If KeyDown(1) Then End ;ESC = Beenden
If KeyDown(78) Or KeyDown(27) Then ;+ = Heller
If r<255 Then r=r+1 ;
If g<255 Then g=g+1 ;
If b<255 Then b=b+1 ;
math2#=r+g+b:math$=(math2#/765)*100:br=math$ ;
rgb=ReadPixel(200, 160) ;
EndIf ;
If KeyDown(74) Or KeyDown(53) Then ;- = Dunkler
If r>0 Then r=r-1 ;
If g>0 Then g=g-1 ;
If b>0 Then b=b-1 ;
math2#=r+g+b:math$=(math2#/765)*100:br=math$ ;
rgb=ReadPixel(200, 160) ;
EndIf ;
If KeyDown(50) Then mode=1 ;M = Mode 1: Mix Mode

Flip
Forever
[/code:1:8a2e1f8ef5]
===
von ???
hab mir den code jetzt nicht näher angeguckt aber so viel
code für einen einfachen color-picker und mixer ?? Oo
===
von ???
Naja ich hab ihn ziemlich simpel gemacht und keine funktionen verwendet, was sich natürlich nicht positiv auf die länge auswirkt .. :wink:

Außerdem ist ein großer Teil fürs generieren der Pallete und es werden zur Hilfe noch Texte gezeigt...



Suche:
(unterstützt mySQL Wildcards ala %)
Titel:
Text:
Autor: