![]() |
FastLED 3.6.0
|
Representation of an RGB pixel (Red, Green, Blue)
Definition at line 120 of file pixeltypes.h.
#include <pixeltypes.h>
Public Types | |
enum | HTMLColorCode { AliceBlue =0xF0F8FF , Amethyst =0x9966CC , AntiqueWhite =0xFAEBD7 , Aqua =0x00FFFF , Aquamarine =0x7FFFD4 , Azure =0xF0FFFF , Beige =0xF5F5DC , Bisque =0xFFE4C4 , Black =0x000000 , BlanchedAlmond =0xFFEBCD , Blue =0x0000FF , BlueViolet =0x8A2BE2 , Brown =0xA52A2A , BurlyWood =0xDEB887 , CadetBlue =0x5F9EA0 , Chartreuse =0x7FFF00 , Chocolate =0xD2691E , Coral =0xFF7F50 , CornflowerBlue =0x6495ED , Cornsilk =0xFFF8DC , Crimson =0xDC143C , Cyan =0x00FFFF , DarkBlue =0x00008B , DarkCyan =0x008B8B , DarkGoldenrod =0xB8860B , DarkGray =0xA9A9A9 , DarkGrey =0xA9A9A9 , DarkGreen =0x006400 , DarkKhaki =0xBDB76B , DarkMagenta =0x8B008B , DarkOliveGreen =0x556B2F , DarkOrange =0xFF8C00 , DarkOrchid =0x9932CC , DarkRed =0x8B0000 , DarkSalmon =0xE9967A , DarkSeaGreen =0x8FBC8F , DarkSlateBlue =0x483D8B , DarkSlateGray =0x2F4F4F , DarkSlateGrey =0x2F4F4F , DarkTurquoise =0x00CED1 , DarkViolet =0x9400D3 , DeepPink =0xFF1493 , DeepSkyBlue =0x00BFFF , DimGray =0x696969 , DimGrey =0x696969 , DodgerBlue =0x1E90FF , FireBrick =0xB22222 , FloralWhite =0xFFFAF0 , ForestGreen =0x228B22 , Fuchsia =0xFF00FF , Gainsboro =0xDCDCDC , GhostWhite =0xF8F8FF , Gold =0xFFD700 , Goldenrod =0xDAA520 , Gray =0x808080 , Grey =0x808080 , Green =0x008000 , GreenYellow =0xADFF2F , Honeydew =0xF0FFF0 , HotPink =0xFF69B4 , IndianRed =0xCD5C5C , Indigo =0x4B0082 , Ivory =0xFFFFF0 , Khaki =0xF0E68C , Lavender =0xE6E6FA , LavenderBlush =0xFFF0F5 , LawnGreen =0x7CFC00 , LemonChiffon =0xFFFACD , LightBlue =0xADD8E6 , LightCoral =0xF08080 , LightCyan =0xE0FFFF , LightGoldenrodYellow =0xFAFAD2 , LightGreen =0x90EE90 , LightGrey =0xD3D3D3 , LightPink =0xFFB6C1 , LightSalmon =0xFFA07A , LightSeaGreen =0x20B2AA , LightSkyBlue =0x87CEFA , LightSlateGray =0x778899 , LightSlateGrey =0x778899 , LightSteelBlue =0xB0C4DE , LightYellow =0xFFFFE0 , Lime =0x00FF00 , LimeGreen =0x32CD32 , Linen =0xFAF0E6 , Magenta =0xFF00FF , Maroon =0x800000 , MediumAquamarine =0x66CDAA , MediumBlue =0x0000CD , MediumOrchid =0xBA55D3 , MediumPurple =0x9370DB , MediumSeaGreen =0x3CB371 , MediumSlateBlue =0x7B68EE , MediumSpringGreen =0x00FA9A , MediumTurquoise =0x48D1CC , MediumVioletRed =0xC71585 , MidnightBlue =0x191970 , MintCream =0xF5FFFA , MistyRose =0xFFE4E1 , Moccasin =0xFFE4B5 , NavajoWhite =0xFFDEAD , Navy =0x000080 , OldLace =0xFDF5E6 , Olive =0x808000 , OliveDrab =0x6B8E23 , Orange =0xFFA500 , OrangeRed =0xFF4500 , Orchid =0xDA70D6 , PaleGoldenrod =0xEEE8AA , PaleGreen =0x98FB98 , PaleTurquoise =0xAFEEEE , PaleVioletRed =0xDB7093 , PapayaWhip =0xFFEFD5 , PeachPuff =0xFFDAB9 , Peru =0xCD853F , Pink =0xFFC0CB , Plaid =0xCC5533 , Plum =0xDDA0DD , PowderBlue =0xB0E0E6 , Purple =0x800080 , Red =0xFF0000 , RosyBrown =0xBC8F8F , RoyalBlue =0x4169E1 , SaddleBrown =0x8B4513 , Salmon =0xFA8072 , SandyBrown =0xF4A460 , SeaGreen =0x2E8B57 , Seashell =0xFFF5EE , Sienna =0xA0522D , Silver =0xC0C0C0 , SkyBlue =0x87CEEB , SlateBlue =0x6A5ACD , SlateGray =0x708090 , SlateGrey =0x708090 , Snow =0xFFFAFA , SpringGreen =0x00FF7F , SteelBlue =0x4682B4 , Tan =0xD2B48C , Teal =0x008080 , Thistle =0xD8BFD8 , Tomato =0xFF6347 , Turquoise =0x40E0D0 , Violet =0xEE82EE , Wheat =0xF5DEB3 , White =0xFFFFFF , WhiteSmoke =0xF5F5F5 , Yellow =0xFFFF00 , YellowGreen =0x9ACD32 , FairyLight =0xFFE42D , FairyLightNCC =0xFF9D2A } |
Predefined RGB colors. More... | |
Public Member Functions | |
uint8_t & | operator[] (uint8_t x) |
Array access operator to index into the CRGB object. | |
const uint8_t & | operator[] (uint8_t x) const |
Array access operator to index into the CRGB object. | |
CRGB ()=default | |
Default constructor. | |
CRGB (uint8_t ir, uint8_t ig, uint8_t ib) | |
Allow construction from red, green, and blue. | |
CRGB (uint32_t colorcode) | |
Allow construction from 32-bit (really 24-bit) bit 0xRRGGBB color code. | |
CRGB (LEDColorCorrection colorcode) | |
Allow construction from a LEDColorCorrection enum. | |
CRGB (ColorTemperature colorcode) | |
Allow construction from a ColorTemperature enum. | |
CRGB (const CRGB &rhs)=default | |
Allow copy construction. | |
CRGB (const CHSV &rhs) | |
Allow construction from a CHSV color. | |
CRGB & | operator= (const CRGB &rhs)=default |
Allow assignment from one RGB struct to another. | |
CRGB & | operator= (const uint32_t colorcode) |
Allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code. | |
CRGB & | setRGB (uint8_t nr, uint8_t ng, uint8_t nb) |
Allow assignment from red, green, and blue. | |
CRGB & | setHSV (uint8_t hue, uint8_t sat, uint8_t val) |
Allow assignment from hue, saturation, and value. | |
CRGB & | setHue (uint8_t hue) |
Allow assignment from just a hue. | |
CRGB & | operator= (const CHSV &rhs) |
Allow assignment from HSV color. | |
CRGB & | setColorCode (uint32_t colorcode) |
Allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code. | |
CRGB & | operator+= (const CRGB &rhs) |
Add one CRGB to another, saturating at 0xFF for each channel. | |
CRGB & | addToRGB (uint8_t d) |
Add a constant to each channel, saturating at 0xFF. | |
CRGB & | operator-= (const CRGB &rhs) |
Subtract one CRGB from another, saturating at 0x00 for each channel. | |
CRGB & | subtractFromRGB (uint8_t d) |
Subtract a constant from each channel, saturating at 0x00. | |
CRGB & | operator-- () |
Subtract a constant of '1' from each channel, saturating at 0x00. | |
CRGB | operator-- (int) |
Subtract a constant of '1' from each channel, saturating at 0x00. | |
CRGB & | operator++ () |
Add a constant of '1' from each channel, saturating at 0xFF. | |
CRGB | operator++ (int) |
Add a constant of '1' from each channel, saturating at 0xFF. | |
CRGB & | operator/= (uint8_t d) |
Divide each of the channels by a constant. | |
CRGB & | operator>>= (uint8_t d) |
Right shift each of the channels by a constant. | |
CRGB & | operator*= (uint8_t d) |
Multiply each of the channels by a constant, saturating each channel at 0xFF. | |
CRGB & | nscale8_video (uint8_t scaledown) |
Scale down a RGB to N/256ths of it's current brightness using "video" dimming rules. | |
CRGB & | operator%= (uint8_t scaledown) |
%= is a synonym for nscale8_video(). | |
CRGB & | fadeLightBy (uint8_t fadefactor) |
fadeLightBy is a synonym for nscale8_video(), as a fade instead of a scale | |
CRGB & | nscale8 (uint8_t scaledown) |
Scale down a RGB to N/256ths of its current brightness, using "plain math" dimming rules. | |
CRGB & | nscale8 (const CRGB &scaledown) |
Scale down a RGB to N/256ths of its current brightness, using "plain math" dimming rules. | |
CRGB | scale8 (uint8_t scaledown) const |
Return a CRGB object that is a scaled down version of this object. | |
CRGB | scale8 (const CRGB &scaledown) const |
Return a CRGB object that is a scaled down version of this object. | |
CRGB & | fadeToBlackBy (uint8_t fadefactor) |
fadeToBlackBy is a synonym for nscale8(), as a fade instead of a scale | |
CRGB & | operator|= (const CRGB &rhs) |
"or" operator brings each channel up to the higher of the two values | |
CRGB & | operator|= (uint8_t d) |
"or" operator brings each channel up to the higher of the two values | |
CRGB & | operator&= (const CRGB &rhs) |
"and" operator brings each channel down to the lower of the two values | |
CRGB & | operator&= (uint8_t d) |
"and" operator brings each channel down to the lower of the two values | |
operator bool () const | |
This allows testing a CRGB for zero-ness. | |
operator uint32_t () const | |
Converts a CRGB to a 32-bit color having an alpha of 255. | |
CRGB | operator- () const |
Invert each channel. | |
operator rgb24 () const | |
Convert to an rgb24 object, used with the SmartMatrix library. | |
uint8_t | getLuma () const |
Get the "luma" of a CRGB object. | |
uint8_t | getAverageLight () const |
Get the average of the R, G, and B values. | |
void | maximizeBrightness (uint8_t limit=255) |
Maximize the brightness of this CRGB object. | |
CRGB | lerp8 (const CRGB &other, fract8 frac) const |
Return a new CRGB object after performing a linear interpolation between this object and the passed in object. | |
CRGB | lerp16 (const CRGB &other, fract16 frac) const |
Return a new CRGB object after performing a linear interpolation between this object and the passed in object. | |
uint8_t | getParity () |
Returns 0 or 1, depending on the lowest bit of the sum of the color components. | |
void | setParity (uint8_t parity) |
Adjusts the color in the smallest way possible so that the parity of the coloris now the desired value. | |
Public Attributes | ||
union { | ||
struct { | ||
union { | ||
uint8_t r | ||
Red channel value. More... | ||
uint8_t red | ||
Red channel value. More... | ||
} | ||
union { | ||
uint8_t g | ||
Green channel value. More... | ||
uint8_t green | ||
Green channel value. More... | ||
} | ||
union { | ||
uint8_t b | ||
Blue channel value. More... | ||
uint8_t blue | ||
Blue channel value. More... | ||
} | ||
} | ||
uint8_t raw [3] | ||
Access the red, green, and blue data as an array. More... | ||
}; | ||
enum CRGB::HTMLColorCode |
Predefined RGB colors.
Definition at line 663 of file pixeltypes.h.
|
inlinedefault |
Default constructor.
|
inline |
Allow construction from red, green, and blue.
ir | input red value |
ig | input green value |
ib | input blue value |
Definition at line 168 of file pixeltypes.h.
|
inline |
Allow construction from 32-bit (really 24-bit) bit 0xRRGGBB color code.
colorcode | a packed 24 bit color code |
Definition at line 175 of file pixeltypes.h.
|
inline |
Allow construction from a LEDColorCorrection enum.
colorcode | an LEDColorCorrect enumeration value |
Definition at line 182 of file pixeltypes.h.
|
inline |
Allow construction from a ColorTemperature enum.
colorcode | an ColorTemperature enumeration value |
Definition at line 190 of file pixeltypes.h.
|
inline |
Allow construction from a CHSV color.
Definition at line 200 of file pixeltypes.h.
|
inline |
Add a constant to each channel, saturating at 0xFF.
Definition at line 280 of file pixeltypes.h.
|
inline |
fadeLightBy is a synonym for nscale8_video(), as a fade instead of a scale
fadefactor | the amount to fade, sent to nscale8_video() as (255 - fadefactor) |
Definition at line 389 of file pixeltypes.h.
|
inline |
fadeToBlackBy is a synonym for nscale8(), as a fade instead of a scale
fadefactor | the amount to fade, sent to nscale8() as (255 - fadefactor) |
Definition at line 437 of file pixeltypes.h.
|
inline |
Get the average of the R, G, and B values.
Definition at line 530 of file pixeltypes.h.
|
inline |
Get the "luma" of a CRGB object.
In other words, roughly how much light the CRGB pixel is putting out (from 0 to 255).
Definition at line 518 of file pixeltypes.h.
|
inline |
Returns 0 or 1, depending on the lowest bit of the sum of the color components.
Definition at line 587 of file pixeltypes.h.
Return a new CRGB object after performing a linear interpolation between this object and the passed in object.
Definition at line 575 of file pixeltypes.h.
Return a new CRGB object after performing a linear interpolation between this object and the passed in object.
Definition at line 563 of file pixeltypes.h.
|
inline |
Maximize the brightness of this CRGB object.
This makes the individual color channels as bright as possible while keeping the same value differences between channels.
Definition at line 548 of file pixeltypes.h.
Scale down a RGB to N/256ths of its current brightness, using "plain math" dimming rules.
"Plain math" dimming rules means that the low light levels may dim all the way to 100% black.
Definition at line 409 of file pixeltypes.h.
|
inline |
Scale down a RGB to N/256ths of its current brightness, using "plain math" dimming rules.
"Plain math" dimming rules means that the low light levels may dim all the way to 100% black.
Definition at line 399 of file pixeltypes.h.
|
inline |
Scale down a RGB to N/256ths of it's current brightness using "video" dimming rules.
"Video" dimming rules means that unless the scale factor is ZERO each channel is guaranteed NOT to dim down to zero. If it's already nonzero, it'll stay nonzero, even if that means the hue shifts a little at low brightness levels.
Definition at line 373 of file pixeltypes.h.
|
inlineexplicit |
This allows testing a CRGB for zero-ness.
Definition at line 480 of file pixeltypes.h.
|
inline |
Convert to an rgb24 object, used with the SmartMatrix library.
Definition at line 507 of file pixeltypes.h.
|
inlineexplicit |
Converts a CRGB to a 32-bit color having an alpha of 255.
Definition at line 486 of file pixeltypes.h.
|
inline |
%= is a synonym for nscale8_video().
Think of it is scaling down by "a percentage"
Definition at line 381 of file pixeltypes.h.
"and" operator brings each channel down to the lower of the two values
Definition at line 462 of file pixeltypes.h.
|
inline |
"and" operator brings each channel down to the lower of the two values
Definition at line 471 of file pixeltypes.h.
|
inline |
Multiply each of the channels by a constant, saturating each channel at 0xFF.
Definition at line 359 of file pixeltypes.h.
|
inline |
Add a constant of '1' from each channel, saturating at 0xFF.
Definition at line 325 of file pixeltypes.h.
|
inline |
Add a constant of '1' from each channel, saturating at 0xFF.
Definition at line 332 of file pixeltypes.h.
Add one CRGB to another, saturating at 0xFF for each channel.
Definition at line 268 of file pixeltypes.h.
|
inline |
Invert each channel.
Definition at line 495 of file pixeltypes.h.
|
inline |
Subtract a constant of '1' from each channel, saturating at 0x00.
Definition at line 310 of file pixeltypes.h.
|
inline |
Subtract a constant of '1' from each channel, saturating at 0x00.
Definition at line 317 of file pixeltypes.h.
Subtract one CRGB from another, saturating at 0x00 for each channel.
Definition at line 289 of file pixeltypes.h.
|
inline |
Divide each of the channels by a constant.
Definition at line 340 of file pixeltypes.h.
Allow assignment from HSV color.
Definition at line 250 of file pixeltypes.h.
|
inline |
Allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code.
colorcode | a packed 24 bit color code |
Definition at line 210 of file pixeltypes.h.
|
inline |
Right shift each of the channels by a constant.
Definition at line 349 of file pixeltypes.h.
|
inline |
Array access operator to index into the CRGB object.
x | the index to retrieve (0-2) |
Definition at line 147 of file pixeltypes.h.
|
inline |
Array access operator to index into the CRGB object.
x | the index to retrieve (0-2) |
Definition at line 155 of file pixeltypes.h.
"or" operator brings each channel up to the higher of the two values
Definition at line 444 of file pixeltypes.h.
|
inline |
"or" operator brings each channel up to the higher of the two values
Definition at line 453 of file pixeltypes.h.
Return a CRGB object that is a scaled down version of this object.
Definition at line 426 of file pixeltypes.h.
|
inline |
Return a CRGB object that is a scaled down version of this object.
Definition at line 418 of file pixeltypes.h.
|
inline |
Allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code.
colorcode | a packed 24 bit color code |
Definition at line 258 of file pixeltypes.h.
|
inline |
Allow assignment from hue, saturation, and value.
hue | color hue |
sat | color saturation |
val | color value (brightness) |
Definition at line 234 of file pixeltypes.h.
|
inline |
Allow assignment from just a hue.
Saturation and value (brightness) are set automatically to max.
hue | color hue |
Definition at line 243 of file pixeltypes.h.
|
inline |
Adjusts the color in the smallest way possible so that the parity of the coloris now the desired value.
This allows you to "hide" one bit of information in the color.
Ideally, we find one color channel which already has data in it, and modify just that channel by one. We don't want to light up a channel that's black if we can avoid it, and if the pixel is 'grayscale', (meaning that R==G==B), we modify all three channels at once, to preserve the neutral hue.
There's no such thing as a free lunch; in many cases this "hidden bit" may actually be visible, but this code makes reasonable efforts to hide it as much as is reasonably possible.
Also, an effort is made to make it such that repeatedly setting the parity to different values will not cause the color to "drift". Toggling the parity twice should generally result in the original color again.
Definition at line 615 of file pixeltypes.h.
|
inline |
Allow assignment from red, green, and blue.
nr | new red value |
ng | new green value |
nb | new blue value |
Definition at line 222 of file pixeltypes.h.
|
inline |
Subtract a constant from each channel, saturating at 0x00.
Definition at line 301 of file pixeltypes.h.
uint8_t CRGB::b |
Blue channel value.
Definition at line 132 of file pixeltypes.h.
uint8_t CRGB::blue |
uint8_t CRGB::g |
Green channel value.
Definition at line 128 of file pixeltypes.h.
uint8_t CRGB::green |
uint8_t CRGB::r |
uint8_t CRGB::raw[3] |
Access the red, green, and blue data as an array.
Where:
raw[0]
is the red valueraw[1]
is the green valueraw[2]
is the blue value Definition at line 141 of file pixeltypes.h.
uint8_t CRGB::red |
Red channel value.
Definition at line 125 of file pixeltypes.h.