FastLED 3.9.15
|
Representation of an RGB pixel (Red, Green, Blue)
#include <crgb.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 , Gray0 =0x000000 , Gray10 =0x1A1A1A , Gray25 =0x404040 , Gray50 =0x7F7F7F , Gray75 =0xBFBFBF , Gray100 =0xFFFFFF , Grey0 =0x000000 , Grey10 =0x1A1A1A , Grey25 =0x404040 , Grey50 =0x7F7F7F , Grey75 =0xBFBFBF , Grey100 =0xFFFFFF , Red1 =0xFF0000 , Red2 =0xEE0000 , Red3 =0xCD0000 , Red4 =0x8B0000 , Green1 =0x00FF00 , Green2 =0x00EE00 , Green3 =0x00CD00 , Green4 =0x008B00 , Blue1 =0x0000FF , Blue2 =0x0000EE , Blue3 =0x0000CD , Blue4 =0x00008B , Orange1 =0xFFA500 , Orange2 =0xEE9A00 , Orange3 =0xCD8500 , Orange4 =0x8B5A00 , Yellow1 =0xFFFF00 , Yellow2 =0xEEEE00 , Yellow3 =0xCDCD00 , Yellow4 =0x8B8B00 , Cyan1 =0x00FFFF , Cyan2 =0x00EEEE , Cyan3 =0x00CDCD , Cyan4 =0x008B8B , Magenta1 =0xFF00FF , Magenta2 =0xEE00EE , Magenta3 =0xCD00CD , Magenta4 =0x8B008B , VioletRed =0xD02090 , DeepPink1 =0xFF1493 , DeepPink2 =0xEE1289 , DeepPink3 =0xCD1076 , DeepPink4 =0x8B0A50 , Gold1 =0xFFD700 , Gold2 =0xEEC900 , Gold3 =0xCDAD00 , Gold4 =0x8B7500 } |
Predefined RGB colors. More... | |
Public Member Functions | |
FASTLED_FORCE_INLINE | CRGB () |
Default constructor. | |
constexpr | CRGB (ColorTemperature colorcode) noexcept |
Allow construction from a ColorTemperature enum. | |
FASTLED_FORCE_INLINE | CRGB (const CHSV &rhs) |
Allow construction from a CHSV color. | |
FASTLED_FORCE_INLINE | CRGB (const CRGB &rhs)=default |
Allow copy construction. | |
CRGB (const fl::HSV16 &rhs) | |
Allow construction from a fl::HSV16 color Enables automatic conversion from HSV16 to CRGB. | |
constexpr | CRGB (fl::u32 colorcode) noexcept |
Allow construction from 32-bit (really 24-bit) bit 0xRRGGBB color code. | |
constexpr | CRGB (fl::u8 ir, fl::u8 ig, fl::u8 ib) noexcept |
Allow construction from red, green, and blue. | |
constexpr | CRGB (LEDColorCorrection colorcode) noexcept |
Allow construction from a LEDColorCorrection enum. | |
FASTLED_FORCE_INLINE CRGB & | addToRGB (fl::u8 d) |
Add a constant to each channel, saturating at 0xFF. | |
constexpr fl::u32 | as_uint32_t () const noexcept |
CRGB | colorBoost (fl::EaseType saturation_function=fl::EASE_NONE, fl::EaseType luminance_function=fl::EASE_NONE) const |
FASTLED_FORCE_INLINE CRGB & | fadeLightBy (fl::u8 fadefactor) |
fadeLightBy is a synonym for nscale8_video(), as a fade instead of a scale | |
CRGB & | fadeToBlackBy (fl::u8 fadefactor) |
fadeToBlackBy is a synonym for nscale8(), as a fade instead of a scale | |
FASTLED_FORCE_INLINE fl::u8 | getAverageLight () const |
Get the average of the R, G, and B values. | |
fl::u8 | getLuma () const |
Get the "luma" of a CRGB object. | |
FASTLED_FORCE_INLINE fl::u8 | getParity () |
Returns 0 or 1, depending on the lowest bit of the sum of the color components. | |
FASTLED_FORCE_INLINE 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. | |
CRGB | lerp8 (const CRGB &other, fract8 amountOf2) const |
Return a new CRGB object after performing a linear interpolation between this object and the passed in object. | |
FASTLED_FORCE_INLINE void | maximizeBrightness (fl::u8 limit=255) |
Maximize the brightness of this CRGB object. | |
FASTLED_FORCE_INLINE CRGB & | nscale8 (const CRGB &scaledown) |
Scale down a RGB to N/256ths of its current brightness, using "plain math" dimming rules. | |
CRGB & | nscale8 (fl::u8 scaledown) |
Scale down a RGB to N/256ths of its current brightness, using "plain math" dimming rules. | |
constexpr CRGB | nscale8_constexpr (const CRGB scaledown) const |
FASTLED_FORCE_INLINE CRGB & | nscale8_video (fl::u8 scaledown) |
Scale down a RGB to N/256ths of it's current brightness using "video" dimming rules. | |
constexpr | operator bool () const |
This allows testing a CRGB for zero-ness. | |
constexpr | operator fl::u32 () const |
Converts a CRGB to a 32-bit color having an alpha of 255. | |
operator rgb24 () const | |
Convert to an rgb24 object, used with the SmartMatrix library. | |
FASTLED_FORCE_INLINE CRGB & | operator%= (fl::u8 scaledown) |
%= is a synonym for nscale8_video(). | |
FASTLED_FORCE_INLINE CRGB & | operator&= (const CRGB &rhs) |
"and" operator brings each channel down to the lower of the two values | |
FASTLED_FORCE_INLINE CRGB & | operator&= (fl::u8 d) |
"and" operator brings each channel down to the lower of the two values | |
FASTLED_FORCE_INLINE CRGB & | operator*= (fl::u8 d) |
Multiply each of the channels by a constant, saturating each channel at 0xFF. | |
FASTLED_FORCE_INLINE CRGB & | operator++ () |
Add a constant of '1' from each channel, saturating at 0xFF. | |
FASTLED_FORCE_INLINE CRGB | operator++ (int) |
Add a constant of '1' from each channel, saturating at 0xFF. | |
CRGB & | operator+= (const CRGB &rhs) |
Add one CRGB to another, saturating at 0xFF for each channel. | |
constexpr CRGB | operator- () const |
Invert each channel. | |
FASTLED_FORCE_INLINE CRGB & | operator-- () |
Subtract a constant of '1' from each channel, saturating at 0x00. | |
FASTLED_FORCE_INLINE CRGB | operator-- (int) |
Subtract a constant of '1' from each channel, saturating at 0x00. | |
FASTLED_FORCE_INLINE CRGB & | operator-= (const CRGB &rhs) |
Subtract one CRGB from another, saturating at 0x00 for each channel. | |
FASTLED_FORCE_INLINE CRGB & | operator/= (fl::u8 d) |
Divide each of the channels by a constant. | |
FASTLED_FORCE_INLINE CRGB & | operator= (const CHSV &rhs) |
Allow assignment from HSV color. | |
FASTLED_FORCE_INLINE CRGB & | operator= (const CRGB &rhs)=default |
Allow assignment from one RGB struct to another. | |
FASTLED_FORCE_INLINE CRGB & | operator= (const fl::u32 colorcode) |
Allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code. | |
FASTLED_FORCE_INLINE CRGB & | operator>>= (fl::u8 d) |
Right shift each of the channels by a constant. | |
FASTLED_FORCE_INLINE fl::u8 & | operator[] (fl::u8 x) |
Array access operator to index into the CRGB object. | |
FASTLED_FORCE_INLINE const fl::u8 & | operator[] (fl::u8 x) const |
Array access operator to index into the CRGB object. | |
FASTLED_FORCE_INLINE CRGB & | operator|= (const CRGB &rhs) |
"or" operator brings each channel up to the higher of the two values | |
FASTLED_FORCE_INLINE CRGB & | operator|= (fl::u8 d) |
"or" operator brings each channel up to the higher of the two values | |
FASTLED_FORCE_INLINE CRGB | scale8 (const CRGB &scaledown) const |
Return a CRGB object that is a scaled down version of this object. | |
FASTLED_FORCE_INLINE CRGB | scale8 (fl::u8 scaledown) const |
Return a CRGB object that is a scaled down version of this object. | |
FASTLED_FORCE_INLINE CRGB & | setColorCode (fl::u32 colorcode) |
Allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code. | |
FASTLED_FORCE_INLINE CRGB & | setHSV (fl::u8 hue, fl::u8 sat, fl::u8 val) |
Allow assignment from hue, saturation, and value. | |
FASTLED_FORCE_INLINE CRGB & | setHue (fl::u8 hue) |
Allow assignment from just a hue. | |
FASTLED_FORCE_INLINE void | setParity (fl::u8 parity) |
Adjusts the color in the smallest way possible so that the parity of the coloris now the desired value. | |
FASTLED_FORCE_INLINE CRGB & | setRGB (fl::u8 nr, fl::u8 ng, fl::u8 nb) |
Allow assignment from red, green, and blue. | |
FASTLED_FORCE_INLINE CRGB & | subtractFromRGB (fl::u8 d) |
Subtract a constant from each channel, saturating at 0x00. | |
fl::HSV16 | toHSV16 () const |
fl::string | toString () const |
Static Public Member Functions | |
static CRGB | blend (const CRGB &p1, const CRGB &p2, fract8 amountOfP2) |
static CRGB | blendAlphaMaxChannel (const CRGB &upper, const CRGB &lower) |
static void | colorBoost (const CRGB *src, CRGB *dst, size_t count, fl::EaseType saturation_function=fl::EASE_NONE, fl::EaseType luminance_function=fl::EASE_NONE) |
static CRGB | computeAdjustment (fl::u8 scale, const CRGB &colorCorrection, const CRGB &colorTemperature) |
Calculates the combined color adjustment to the LEDs at a given scale, color correction, and color temperature. | |
static void | downscale (const CRGB *src, const fl::XYMap &srcXY, CRGB *dst, const fl::XYMap &dstXY) |
Downscale an CRGB matrix (or strip) to the smaller size. | |
static void | upscale (const CRGB *src, const fl::XYMap &srcXY, CRGB *dst, const fl::XYMap &dstXY) |
Public Attributes | ||
union { | ||
struct { | ||
union { | ||
fl::u8 | g | |
Green channel value. | ||
fl::u8 | green | |
Green channel value. | ||
} | ||
union { | ||
fl::u8 | r | |
Red channel value. | ||
fl::u8 | red | |
Red channel value. | ||
} | ||
union { | ||
fl::u8 | b | |
Blue channel value. | ||
fl::u8 | blue | |
Blue channel value. | ||
} | ||
} | ||
fl::u8 | raw [3] | |
Access the red, green, and blue data as an array. | ||
}; | ||