RGBA Color Space - ARGB

ARGB

In computer graphics, pixels encoding the RGBA Color Space information must be stored in computer memory (or in files on disk), in well defined formats. In the most common format the intensity of each channel sample is defined by 8 bits, and are arranged in memory in such manner that a single 32-bit unsigned integer has the Alpha sample in the highest 8 bits, followed by the Red sample, Green sample and the Blue sample in the lowest 8 bits. This is often called "ARGB":

Fig.1 – The most common 32bpp pixel layout

In some contexts, primarily OpenGL, the term "RGBA" actually means the colors are stored in memory such that R is at the lowest address, G after it, B after that, and A last. This is not the format described above. In the above format, on a little-endian CPU (such as Intel processors) the bytes are stored with B at the lowest address, in what OpenGL calls "BGRA", while on a big-endian machine the bytes are instead in what OpenGL calls "ARGB" order. Various terms such as "ARGB32" or "A8R8G8B8" have been used to attempt to disambiguate the above layout from the byte-based ones, but none have become common.

ARGB values are typically expressed using 8 hexadecimal digits, with each pair of the hexadecimal digits representing the values of the Alpha, Red, Green and Blue channel, respectively. For example 0x80FFFF00 represents 50.2% opaque (non-premultiplied) yellow. The "0x" prefix is used to identify a number as hexadecimal in C notation. 0x80 represents a 50.2% alpha value, because it is 50.2% of 0xFF (in decimal 128 is 50.2% of 255), the first 0xFF represents the maximum value red can have; the second 0xFF is like the previous but for green; 0x00 represents the minimum value blue can have (effectively – no blue). Consequently red + green yields yellow.


Read more about this topic:  RGBA Color Space