Hexadezimal umwandlung funzt nicht ... (Farbcode)
Übersicht

![]() |
ToeBBetreff: Hexadezimal umwandlung funzt nicht ... (Farbcode) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich wollt mir zwei Funtionen schreiben, mit denen man von rgb in Hexadezimal umwandeln kann und umgekehrt... Ab er irwie ist das ergebniss immer ein anderes :
Code: [AUSKLAPPEN] Graphics 800,600,16,2
SetBuffer BackBuffer() Global h = $FFFFFFF Repeat Text 1,1,"Hex : "+Hex(h) For i = 1 To 3 Text 1,1+i*20,"Dec : "+GetDec(h,i) Next Text 1,80,"Hex : "+Hex(GetHex(GetDec(h,1),GetDec(h,2),GetDec(h,2))) Flip Cls Until KeyHit(1) End Function GetHex(red,green,blue) Local Hexa Hexa = red Shl 16 + green Shl 8 + blue Return Hexa End Function Function GetDec(hexa,col_int) Local col[3] col[1] = (hexa And $FF0000)/$10000 col[2] = (hexa And $FF00)/$100 col[3] = hexa And $FF Return col[col_int] End Function Wisst ihr warum wenn ich aus 255,255,255 eine Hex-Zahl mache es 00FFFFF ergibt und wenn ich $FFFFFF hinschreibe nur 0FFFFFF ? Danke schonmal.... [EDIT] ![]() Code: [AUSKLAPPEN] Graphics 800,600,16,2
(Der Code ist aus meinem anderen Code zusammengestelltden ich noch nicht veröffentlichen will Global tt = CreateImage(100,100) SetBuffer ImageBuffer(tt) Color 255,0,255 Rect 0,0,100,100 SetBuffer BackBuffer() Color 255,255,255 DrawImage tt,0,0 Local maskColor = GetHex(255,0,255) Local lineColor = GetHex(255,255,255) Local LolColor = ReadPixel(1,1) Cls Text 1,1,Hex(maskColor) Text 1,13,Hex(lineColor) Text 1,26,Hex(LolColor) Flip WaitKey() End Function GetHex(red,green,blue) Local Hexa Hexa = red Shl 16 + green Shl 8 + blue Return Hexa End Function Function GetDec(hexa,col_int) Local col[3] col[1] = (hexa And $FF0000)/$10000 col[2] = (hexa And $FF00)/$100 col[3] = hexa And $FF Return col[col_int] End Function ![]() [EDIT] Code nochmal angepasst ... [/EDIT] Warum hat maskColor einen anderen Wert wie der Pixel aus dem Bild ??? Thx und mfg Crack93 |
||
- Zuletzt bearbeitet von ToeB am Fr, Jan 25, 2008 18:50, insgesamt 2-mal bearbeitet
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Text 1,80,"Hex : "+Hex(GetHex(GetDec(h,1),GetDec(h,2),GetDec(h,2)))
müßte heißen Code: [AUSKLAPPEN] Text 1,80,"Hex : "+Hex(GetHex(GetDec(h,1),GetDec(h,2),GetDec(h,3)))
ansonsten funktioniert das aber mit den beiden Funktionen. Die erste zeile h= $FFFFFFF sind 7 x F |
||
[BB2D | BB3D | BB+]
|
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh.... ![]() Danke ! [EDIT] Also ich hab etwas rumprobiert und hab jetzt mal alles ausgeben lassen : Code: [AUSKLAPPEN] Global tt = CreateImage(100,100)
SetBuffer ImageBuffer(tt) Color 255,0,255 Rect 0,0,100,100 SetBuffer BackBuffer() Color 255,255,255 DrawImage tt,0,0 Local maskColor = GetHex(255,0,255) Local lineColor = GetHex(255,255,255) Local LolColor = ReadPixel(1,1) Cls Print "Mask: "+Hex(maskColor) Print "Line: "+Hex(lineColor) Print " Lol: "+Hex(LolColor) Print "-------------------------------------" For i = 1 To 3 Print i+" Col Mask : "+GetDec(MaskColor,i) Next Print "-------------------------------------" For i = 1 To 3 Print i+" Col Line : "+GetDec(LineColor,i) Next Print "-------------------------------------" For i = 1 To 3 Print i+" Col LOl : "+GetDec(LolColor,i) Next Flip WaitKey() End Function GetHex(red,green,blue) Local Hexa Hexa = 255 Shl 24 + red Shl 16 + green Shl 8 + blue Return Hexa End Function Function GetDec(hexa,col_int) Local col[3] col[1] = (hexa And $FF0000)/$10000 col[2] = (hexa And $FF00)/$100 col[3] = hexa And $FF Return col[col_int] End Function Also bei mir kommt bei LolColor folgendes raus : DebugLog hat Folgendes geschrieben: r = 248
g = 0 b = 248 Warum ? Ich Check das nicht weil bei einem anderen klappt alles... thx schonmal Crack93 [EDIT] Also es liegt auf jeden Fall an ReadPixel weil die Functionen Einwandfrei Funzen ! [/EDIT] |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
das ist ganz einfach, du hast nur 16bit Farbtiefe eingestellt
kannst du testen mit Code: [AUSKLAPPEN] Print GraphicsDepth ()+ " Bit Color"
|
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja ich weiß... bin grad auch drauf gekommen... Danke trotzdem !
mfg Crack93 |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group