Colorpicker
Übersicht BlitzBasic Codearchiv
OJayBetreff: Colorpicker |
Di, Feb 10, 2004 21:08 Antworten mit Zitat |
|
---|---|---|
wurde im chat gewünscht. von DC geschrieben. ist aber noch stark verbesserungswürdig (was den speed angeht)...aber das kann ja jeder selbst machen
Code: [AUSKLAPPEN] 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 |
||
joKe |
Mi, Feb 11, 2004 11:34 Antworten mit Zitat |
|
---|---|---|
Was issn das was kann man damit machen ?
Eine kleine erklärung wäre nett =) mfG j0k3 |
||
Projekt: Pollux Renegades Coop
[Maschine: Intel DualCore2 2x 3Ghz | 4096 DRR2 | GeForce GTX 260 Ultra] |
mpz |
Mi, Feb 11, 2004 12:21 Antworten mit Zitat |
|
---|---|---|
Dein Programm gefällt mir sehr gut. Anbei auch noch eine "Farbauswahl" mit der WINAPI programmiert, passt zu Deinem Beitrag
Code: [AUSKLAPPEN] ; This Procedure is for free MPZ (@) from Berlin ; Version 0.1 1/2004 ; ; in the USERLIBS must be the file kernel32.decls ;.lib "kernel32.dll" ;api_RtlMoveMemory(Destination*,Source,Length) : "RtlMoveMemory" ; in the USERLIBS must be the file comdlg32.decls ;.lib "comdlg32.dll" ;api_ChooseColor% (pChoosecolor*) : "ChooseColorA" [/syntax] [syntax="bb"] Cls Graphics 640,480,0,2 Print ChooseColor() While MouseHit(1) <> 1 Wend End ;--------------------------You can use it as BlitzLIB Function ChooseColor() CC_ANYCOLOR = $100 CC_FULLOPEN = $2 CC_RGBINIT = $1 nextOffset%=0 theBank=CreateBank(36) lStructSize=36 PokeInt theBank,nextOffset%,lStructSize nextOffset%=nextOffset%+4 hwndOwner=0 PokeInt theBank,nextOffset%,hwndOwner nextOffset%=nextOffset%+4 hInstance=0 PokeInt theBank,nextOffset%,hInstance nextOffset%=nextOffset%+4 rgbResult=0 PokeInt theBank,nextOffset%,rgbResult nextOffset%=nextOffset%+4 lpCustColors_ = CreateBank(64) PokeInt theBank,nextOffset%,AddressOf(lpCustColors_) nextOffset%=nextOffset%+4 flags=CC_ANYCOLOR Or CC_FULLOPEN Or CC_RGBINIT PokeInt theBank,nextOffset%,flags nextOffset%=nextOffset%+4 lCustData=0 PokeInt theBank,nextOffset%,lCustData nextOffset%=nextOffset%+4 lpfnHook=0 PokeInt theBank,nextOffset%,lpfnHook nextOffset%=nextOffset%+4 lpTemplateName$=""+Chr$(0) lpTemplateName_ = CreateBank(Len(lpTemplateName$)) string_in_bank(lpTemplateName$,lpTemplateName_) PokeInt theBank,nextOffset%,AddressOf(lpTemplateName_) nextOffset%=nextOffset%+4 If api_ChooseColor%(thebank) Then Return PeekInt (thebank,16) Else Return 0 EndIf FreeBank theBank FreeBank lpTemplateName_ End Function Function AddressOf(Bank) ; Find the correct Adress of a Bank (for C *Pointer) Local Address = CreateBank(4) api_RtlMoveMemory(Address,Bank+4,4) Return PeekInt(Address,0) End Function Function string_in_bank(s$,bankhandle) ; Put a String in a Bank Local pos=1 Local pos2=0 Repeat PokeByte(bankhandle,pos2,Asc(Mid(s$,pos,Len(s$)))) pos=pos+1 pos2=pos2+1 Until pos=Len(s$)+1 End Function Function bank_in_string$(bankhandle) ; Get a String from a Bank Local s$="" Local pos=0 Repeat s$=s$+Chr(PeekByte(bankhandle,pos)) pos=pos+1 Until pos=BankSize(bankhandle) s$=Replace$(s$,Chr(0)," ") Return s$ End Function |
||
DCSieger des B2D Retro Wettbewerb / Aug 04 |
Mi, Feb 11, 2004 16:05 Antworten mit Zitat |
|
---|---|---|
Oha ein Code von mir
@j0k3: Man kann eine Farbe auswählen und bekommt R G B und Colorcode für WritePixel(Fast) angezeigt. Außerdem kann man 2 Farben mischen und aufhellen oder abdunkeln |
||
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com | www.CarnageContest.com | www.Stranded3.com |
joKe |
Mi, Feb 11, 2004 16:12 Antworten mit Zitat |
|
---|---|---|
Axo cool
also keine Include datei oder sowas die Hilft sondern ein nützliches Programm für nebenbei um schnell die Information über eine bestimmte Farbe in RGB und im Colorcode zu bekommen ??? |
||
Projekt: Pollux Renegades Coop
[Maschine: Intel DualCore2 2x 3Ghz | 4096 DRR2 | GeForce GTX 260 Ultra] |
DCSieger des B2D Retro Wettbewerb / Aug 04 |
Mi, Feb 11, 2004 16:22 Antworten mit Zitat |
|
---|---|---|
Jop.. wobei das Ding schon älter ist und ich da noch nicht wusste das man ja auch einfach z.B. $FF0000 bei Writepixel nehmen kann - der doofe Colorcode war eigentlich der Hauptgrund das ich das gebastelt hab.. naja auch egal | ||
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com | www.CarnageContest.com | www.Stranded3.com |
Übersicht BlitzBasic Codearchiv
Powered by phpBB © 2001 - 2006, phpBB Group