2016-07-18 12 views
1

Ich versuche, ein Bild mit einem roten, einem grünen und einem blauen Wert zu erstellen, und um ein RGBImage zu erstellen, müssen Sie ein int [] in Form eines AARRGGBB-Arrays bereitstellen. Wie sieht das Format eines AARRGGBB-Arrays aus? Mit Format meine ich {rot, grün, blau}?Wie ist das Format eines AARRGGBB-Arrays?

+2

Top-Vermutung ist, dass die Abkürzung zu * bezieht (Alpha, * Rot, Grün, Blau), wobei jeder dieser vier Elemente (in der Bereich * 0-255 * == * $ 00-FF) * belegt ein Byte in einem Vier-Byte * (32-Bit) * Integer-Wert. So dass * (Alpha = 1, Rot = 2, Grün = 3, Blau = 4) * codiert wäre * (in hexadezimaler Notation): * '$ 01020304'. * Alpha, * natürlich, bezieht sich auf die * Transparenz * des Pixels, so dass '$ 00 'vollständig transparent ist und' $ FF' * (dezimal 255) * vollständig undurchsichtig ist. –

Antwort

1

Als @mike-robinson im Kommentar erwähnt ist dies ein ziemlich Standard-Begriff. Ein Java int enthält 4 Bytes von Daten das MSB (höchstwertiges Byte) ist der Alpha-Nachfolger durch das Rot, Blau und Grün für das LSB (niedrigstwertiges Byte).

So ein aarrggbb int nur so etwas wie verwenden zu setzen:

int aarrggbbVal = ((0xff000000 & (alpha << 24)) | 
     ((0xff0000 & (red << 16)) | 
     ((0xff00 & (green << 8)) | 
     (0xff & blue); 
Verwandte Themen