Erhalten des R-Kanal von einem ARGB uint-out?
-
10-07-2019 - |
Frage
ich habe einen ARGB-Wert im Parameter einer Funktion und die Funktion muss der agb Werte loszuwerden und halten nur die r. Wie würdest du das machen? Dankes-
Lösung
Das geschieht mit bitweise Verschiebung und bitweise AND.
Die uint in einem 32-Bit-Integer. Jeder der A, R, G, B einnimmt 8 seiner Bits (ein Byte). Und sie scheinen mir die gleiche Reihenfolge wie der Name schon sagt A, R, G, B
raus b Sie müssen nur Maske heraus alle anderen Bits mit einer bitweise AND-Anweisung.
a = ARGB & 255 weil 255 binär 11111111 ist, hält sie nur die benötigten Bits.
für g Sie zuerst die Bits verschieben tun müssen, um dann den oben. g = ARGB >> 8 & 255
r ist gleich, aber 16 Bits verschieben
r = ARGB >> 16 & 255
und a = ARGB >> 24 & 255
Ich hoffe, das hilft
Andere Tipps
ist hier mehr Informationen über sie: http://www.adobe.com/devnet/flash/articles/bitwise_operators_print. html