Welcome on MasterOf13FPS! MasterOf13FPS

Register today or sign up if you are already a member and never miss any cool content again :)

Request ColorUtils

MasterOf13FPS

Administrator
Staff member
Administrator
MasterOf13FPS
Joined
Jul 11, 2020
Messages
0
Reaction score
25
Points
0
Hay ich brauche für meine Clickgui ColorUtils nur ka wie ich die Funktion RgbToHex mache also wollte ich fragen ob jemand hier ne colorutils hat^^
 
"hex", oder eher das Hexadezimalsystem ist ein Zahlensystem und kein extra Datentyp (in Java), also ist "ff00f2f1" exakt das gleiche wie "4278252273" (gilt natürlich auch für das Oktal- und Binärsystem).
Warum man das Hexadezimalsystem öfter als das Dezimalsystem bei "Farbcodes" verwendet, kommt daher, dass es sehr viel leichter ist.
0xaarrggbb | 16777216 * a + 65535 * r + 256 * g + b = a << 24 | r << 16 | g << 8 | b
z.B. 0xff00e2aa = 4278248106 = 16777216 * 255 + 65535 * 0 + 256 * 226 + 170 =
255 << 24 | 0 << 16 | 226 << 8 | 170

EDIT:
Ich erkläre jetzt noch wie diese (a << 24 | r << 16 | g << 8 | b) Rechenoperation funktioniert:
Erst einmal wird a (alpha) um 24 Bits nach links geschoben. (<<)
z.B. 0b00000000000000000000000011111111 (0xff) wird zu 0b11111111000000000000000000000000 (0xff000000).
Das gleiche mit r, nur da sind es 16 Stellen.
Danach wird ein Bitwise OR verwendet.
z.B. 0b11111111000000000000000000000000 und 0b00000000101101010000000000000000 werden zu 0b11111111101101010000000000000000.
Dies geschieht mit allen hier festgelegten Variablen, bis auf 'b' (blue), denn dort wird es um 0 verschoben -> nichts passiert.

EDIT #2:
a, r, g und b sollten dafür zwischen 0 und 255 liegen.
Kann man entweder erzwingen, in dem man diese als bytes deklariert, oder eine Operation wie diese benutzt: (a & 0xFF) << 24 | (r & 0xFF) << 16 | (g & 0xFF) << 8 | (b & 0xFF).
Das Bitwise and (&) bewirkt, dass die jeweiligen Bits nur 1 sind, wenn beide Bits den vom Wert 1 sind.
 
Last edited by a moderator:
(Soll kein merged Post sein!)

Ich erkläre jetzt noch, wie man vom "Farbcode" wieder zu den ursprünglichen Werten kommt:
Als Beispiel nehme ich 'int32 color = 0xFF38C467'.
Es ist umgekehrt, wer hätte es erwartet.
Also könnte man sich denken: 'red = color >> 16'
So leicht ist es aber nicht.
color >> 16 = 0xFF38C467 >> 16 = 0xFFFFFF38
Das ist natürlich schlecht, dies aber funktioniert, warum, wurde in der obrigen Erklärung beschrieben:
(color >> 16) & 0xFF = (0xFF38C467 >> 16) & 0xFF = 0x38

Um wie viele bits man 'color' verschieben muss, um Alpha, Red, Green oder Blue zu bekommen, sollte jetzt wohl klar sein.

Ich denke ich habe da ziemlich viel geschrieben, aber hoffentlich haben diejenigen, die den Post gelesen haben und davor nicht wussten wie dies funktioniert, es verstanden.
 
(Soll kein merged Post sein!)

Ich erkläre jetzt noch, wie man vom "Farbcode" wieder zu den ursprünglichen Werten kommt:
Als Beispiel nehme ich 'int32 color = 0xFF38C467'.
Es ist umgekehrt, wer hätte es erwartet.
Also könnte man sich denken: 'red = color >> 16'
So leicht ist es aber nicht.
color >> 16 = 0xFF38C467 >> 16 = 0xFFFFFF38
Das ist natürlich schlecht, dies aber funktioniert, warum, wurde in der obrigen Erklärung beschrieben:
(color >> 16) & 0xFF = (0xFF38C467 >> 16) & 0xFF = 0x38

Um wie viele bits man 'color' verschieben muss, um Alpha, Red, Green oder Blue zu bekommen, sollte jetzt wohl klar sein.

Ich denke ich habe da ziemlich viel geschrieben, aber hoffentlich haben diejenigen, die den Post gelesen haben und davor nicht wussten wie dies funktioniert, es verstanden.

int32

rly? xd
 
Hay ich brauche für meine Clickgui ColorUtils nur ka wie ich die Funktion RgbToHex mache also wollte ich fragen ob jemand hier ne colorutils hat^^
Wenn du schon skiddest dann skidde dir die colorutils mit, du brauchst sowas nicht wenn du weißt wie man ein clickgui macht.
 
Wenn du schon skiddest dann skidde dir die colorutils mit, du brauchst sowas nicht wenn du weißt wie man ein clickgui macht.
das würde ich so nicht unterschreiben. Man kann fähig sein ein clickgui selbst zu schreiben, auch ohne das hexadezimale zahlensystem und/oder bitwise operations zu können. Ist um einiges leichter
 
"hex", oder eher das Hexadezimalsystem ist ein Zahlensystem und kein extra Datentyp (in Java), also ist "ff00f2f1" exakt das gleiche wie "4278252273" (gilt natürlich auch für das Oktal- und Binärsystem).
Warum man das Hexadezimalsystem öfter als das Dezimalsystem bei "Farbcodes" verwendet, kommt daher, dass es sehr viel leichter ist.
0xaarrggbb | 16777216 * a + 65535 * r + 256 * g + b = a << 24 | r << 16 | g << 8 | b
z.B. 0xff00e2aa = 4278248106 = 16777216 * 255 + 65535 * 0 + 256 * 226 + 170 =
255 << 24 | 0 << 16 | 226 << 8 | 170

EDIT:
Ich erkläre jetzt noch wie diese (a << 24 | r << 16 | g << 8 | b) Rechenoperation funktioniert:
Erst einmal wird a (alpha) um 24 Bits nach links geschoben. (<<)
z.B. 0b00000000000000000000000011111111 (0xff) wird zu 0b11111111000000000000000000000000 (0xff000000).
Das gleiche mit r, nur da sind es 16 Stellen.
Danach wird ein Bitwise OR verwendet.
z.B. 0b11111111000000000000000000000000 und 0b00000000101101010000000000000000 werden zu 0b11111111101101010000000000000000.
Dies geschieht mit allen hier festgelegten Variablen, bis auf 'b' (blue), denn dort wird es um 0 verschoben -> nichts passiert.

EDIT #2:
a, r, g und b sollten dafür zwischen 0 und 255 liegen.
Kann man entweder erzwingen, in dem man diese als bytes deklariert, oder eine Operation wie diese benutzt: (a & 0xFF) << 24 | (r & 0xFF) << 16 | (g & 0xFF) << 8 | (b & 0xFF).
Das Bitwise and (&) bewirkt, dass die jeweiligen Bits nur 1 sind, wenn beide Bits den vom Wert 1 sind.
Sehr gut erklärt... :D
 
das würde ich so nicht unterschreiben. Man kann fähig sein ein clickgui selbst zu schreiben, auch ohne das hexadezimale zahlensystem und/oder bitwise operations zu können. Ist um einiges leichter
wtf hast du überhaupt gelesen was ich geschrieben habe ? Ich wollte damit sagen dass er wahrscheinlich eins geskidded hat weil ich zb habe meins selbst gemacht und hatte nicht irgendein colorutil gebraucht. AUch total unnötig
 
wtf hast du überhaupt gelesen was ich geschrieben habe ? Ich wollte damit sagen dass er wahrscheinlich eins geskidded hat weil ich zb habe meins selbst gemacht und hatte nicht irgendein colorutil gebraucht. AUch total unnötig
entschuldigung das ich erst jetzt antworte und das ich dich missverstanden habe, kann ja mal vorkommen
 
shape1
shape2
shape3
shape4
shape5
shape6
Back
Top