Komischer RGB Farbcode beim BufferedImage in Java?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet
  • Starte den Windows-Taschenrechner (calc.exe),
  • wähle im Menü die "Programmierer"-Ansicht aus und
  • dann kopiere die Zahlen ins Eingabefeld.

Im Feld "Hex" siehst du den Hexadezimalwert, und wenn du daraufklickst, kannst du auch in Hex damit weiterrechnen und z.B. direkt in Hex etwas eingeben.

-16777216 wird zu FFFFFFFFFF000000. Interessant sind nur die letzten sechs Ziffern, also 00 00 00. Das sind die Werte für RGB nacheinander in Hex geschrieben, und die kannst du mit einem zweiten Taschenrechner von Hex nach Dezimal umrechnen.

-1 hat nur "F"s, und die letzten sechs Ziffern sind dann auch "F"s. F steht in Hex für den dezimalen Wert 15, d.h. FF steht für den Dezimalwert 15*16+15=255.

Maik09890 
Fragesteller
 19.03.2022, 11:44

Ich habe jetzt -16777216 mithilfe von Interger.toHexString() in einen String umgewandeln, der lautet: ff000000. Warum stehen da jetzt noch zwei "f's" vor? Bei weiß kommt ffffffff raus, also wieder 2 "f's" zu viel...

0
Trilobit  19.03.2022, 12:22
@Maik09890

Das steht für den Alphakanal, der die Deckkraft angibt. Wenn da der Wert 0 steht, ist das Bild vollständig transparent; FF bedeutet, dass es den Hintergrund komplett verdeckt (so wie man das halt kennt).

0
Maik09890 
Fragesteller
 19.03.2022, 12:29
@Trilobit

Und der geht auch von 0 bis 255 wie alle anderen Werte?

0