Transparenz von ARGB ints

Luk10

Top Contributor
Grüße,

Ich bräuchte Informationen zu der Transparenz bei ARGB-int Werten. Soweit ich weiß ist die Transparenz in den 8 Bits von links gespeichert, aber wie skaliert das, bzw nach welchen "Regeln" brechnent sich der Alpha-Wert aus diesen Bits. Kann man Farben mit Transparenz auch in hexadezimaler Schreibweise darstellen?

Danke,
-Luk10-
 
Musst du das unbedingt wissen, oder willst du es nur irgendwie umsetzen? Bei zweiterem könntest du einfach mit Color arbeiten, das macht dann die Berechnungen für dich.
 
"Irgendwie umsetzten" reicht sicher nicht. Würde das gerne schon verstehen. Finde nur nichts in der Insel, bzw den Büchern die ich hier habe.
 
Naja ich glaub ich versteh deine Frage nicht so ganz.

Der Alphawert wird, wie du selbst schon weißt, in den hochwertigsten 8 bit gespeichert(ob die links oder rechts stehen hängt von Little- oder Bigedian ab, aber das sollte für dich auch uninteressant sein in einer Hochsprache), ist also eine Zahl von 0-255. Kannst du natürlich auch als Hex schreiben, e.g. so:

Java:
new Color(0xFF,0xFF,0xFF,0xFF);

Die Umrechnung erfolgt ganz einfach proportional -> 0=0% Alpha bis 255=100% Alpha.
 
Die Umrechnung erfolgt ganz einfach proportional -> 0=0% Alpha bis 255=100% Alpha.

Danke, das war schon der erste Punkt. Will nicht mit Color arbeiten, lieber die Bits manuell setzten. Kann ich den gesamten ARGB-Wert als Hex schreiben, also ohne Color? Müsste ja eigentlich schon funktionieren.

Danke,
Luk10
 
Probiers doch aus, auch wenn du im Endeffekt ohne Color arbeiten willst ist es super zum testen:

Java:
        int colorInt = 0xFF00FF00;
        Color color = new Color(colorInt);
        System.out.println(color.getAlpha());
        System.out.println(color.getRed());
        System.out.println(color.getGreen());
        System.out.println(color.getBlue());
 

Zurück
Oben