3.3. Decoding an RGB Value
Problem
You want to extract the
red, green, and blue components from an
RGB value returned by Color.getRGB( )
.
Solution
Use the bitshift right and bitwise AND
operators.
Discussion
You can extract the red, green, and blue components from the single
RGB value returned by Color.getRGB( )
using the
bitshift right (>>
) and bitwise
AND
(&
) operators. You
can extract one or more of the colors individually as follows:
// Create theColor
object. my_color = new Color(myMovieClip); // Get the current RGB color. rgb = my_color.getRGB( ); //rgb
contains an RGB color value in decimal form, such as 14501017 (rosy pink), // which is stored internally as its hex equivalent, such as 0xDD4499. red = (rgb >> 16); green = (rgb >> 8) & 0xFF; blue = rgb & 0xFF;
Although displayed as a decimal number, remember that each color is
stored internally in its hexadecimal form:
0x
RRGGBB
. For example,
the color value 14501017 (which is rosy pink) is stored internally as
0xDD4499
. In this format, it is easy to see that
the red component is DD in hex (221 in decimal), the green component
is 44 in hex (68 in decimal), and the blue component is 99 in hex
(153 in decimal).
The preceding transformation effectively separates a 24-bit value into its three 8-bit components (the leftmost eight bits represent red, the middle eight bits represent green, and the rightmost eight bits represent blue). The bitshift right operator is used to shift the eight bits of interest to the rightmost position. ...
Get Actionscript Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.