Colorequester

Anfängerfragen zum Programmieren mit PureBasic.
Rockmaster
Beiträge: 105
Registriert: 28.04.2006 22:19

Colorequester

Beitrag von Rockmaster »

Der Colorrequester liefert wie ihr wisst den 24bit wert einer ausgewählten Farbe zurück.
Diesen Wert kann man in rot, blau und grün werte übersetzen.
Aber wie übersetzt man den Wert in einen Hexdezimalwert? (z.B. #FFFFFF für weiß)
Ich brauche das nämlich für ein HTML-Programm um farben zu bestimmen und html akzepitert halt nur hexdezimale farben...
Gibt es eine spezielle Funktion dafür?
Benutzeravatar
Alves
Beiträge: 1208
Registriert: 19.04.2006 18:24
Kontaktdaten:

Beitrag von Alves »

HTML akzeptiert auch Farbnamen.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Code: Alles auswählen

Color = ColorRequester()
debug "#"+Hex(Color)
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

du must aber noch alle hex-stellen auf 2 zeichen bringen, damit du am ende immer 6 zeichen erhältst.

Code: Alles auswählen

; RGB(rot,gruen,blau)  !!!
; $BlauGruenRot        !!!  (auch in html?)

Procedure.s bit24ToHex(rgb.l)
  hexB$ = Hex(Blue(rgb))
  If Len(hexB$)=1
    hexB$="0"+hexB$
  EndIf
  
  hexG$ = Hex(Green(rgb))
  If Len(hexG$)=1
    hexG$="0"+hexG$
  EndIf
  
  hexR$ = Hex(Red(rgb))
  If Len(hexR$)=1
    hexR$="0"+hexR$
  EndIf
  
  hexRGB$ = hexB$+hexG$+hexR$
  ProcedureReturn hexRGB$
EndProcedure

htmlColor$="#"+bit24ToHex( RGB(255,0,1) )
Debug htmlColor$

my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

HTML will aber #RRGGBB und nich #BBGGRR.

Code: Alles auswählen

Color = RGB(255,0,1) 
Debug "#"+RSet(Hex( ((Color&$FF)<<16)|(Color&$FF00)|((Color&$FF0000)>>16) ),6,"0")
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Rockmaster
Beiträge: 105
Registriert: 28.04.2006 22:19

Beitrag von Rockmaster »

Alves hat geschrieben:HTML akzeptiert auch Farbnamen.
Ja weis ich aber es gibt leider nicht 6 millionen verschiedene Farbnamen :D

Danke ich werds so wie im beipiel versuchen!
Benutzeravatar
Alves
Beiträge: 1208
Registriert: 19.04.2006 18:24
Kontaktdaten:

Beitrag von Alves »

Nicht?
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Rockmaster hat geschrieben:Ja weis ich aber es gibt leider nicht 6 millionen verschiedene Farbnamen :D
richtig, denn es gibt sogar ganze 16.777.216 (~16,8 millionen) Farben


Warum machst du das nicht so, das Beispiel würde ich auch besser verstehen als Deeem's:

Code: Alles auswählen

color=RGB(152, 255, 34)
html$="#"

If Red(color) < $F ; Anmerkung: $F = 15
   html$+"0"+Hex(Red(color))
Else
   html$+Hex(Red(color))
EndIf
Verstehste? Alle Farben R, G und B einzeln durchgehen und ggf. vornullen, wenn die Werte kleiner als $F, also 15 sind.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

wenn, dann
Red(color) <= $F
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Ja, ich war ir grad nicht ganz sicher, aber was ich auf jeden Fall vermittlen wollte, wr das Prinzip. tolle ausrede, nicht? :mrgreen: :lol:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten