FastLED 3.9.3
Loading...
Searching...
No Matches
Pixel Data Types (CRGB/CHSV)

Detailed Description

Structs that hold pixel color data

Classes

struct  CRGB
 Representation of an RGB pixel (Red, Green, Blue) More...
 

Enumerations

enum  CRGB::HTMLColorCode {
  CRGB::AliceBlue =0xF0F8FF , CRGB::Amethyst =0x9966CC , CRGB::AntiqueWhite =0xFAEBD7 , CRGB::Aqua =0x00FFFF ,
  CRGB::Aquamarine =0x7FFFD4 , CRGB::Azure =0xF0FFFF , CRGB::Beige =0xF5F5DC , CRGB::Bisque =0xFFE4C4 ,
  CRGB::Black =0x000000 , CRGB::BlanchedAlmond =0xFFEBCD , CRGB::Blue =0x0000FF , CRGB::BlueViolet =0x8A2BE2 ,
  CRGB::Brown =0xA52A2A , CRGB::BurlyWood =0xDEB887 , CRGB::CadetBlue =0x5F9EA0 , CRGB::Chartreuse =0x7FFF00 ,
  CRGB::Chocolate =0xD2691E , CRGB::Coral =0xFF7F50 , CRGB::CornflowerBlue =0x6495ED , CRGB::Cornsilk =0xFFF8DC ,
  CRGB::Crimson =0xDC143C , CRGB::Cyan =0x00FFFF , CRGB::DarkBlue =0x00008B , CRGB::DarkCyan =0x008B8B ,
  CRGB::DarkGoldenrod =0xB8860B , CRGB::DarkGray =0xA9A9A9 , CRGB::DarkGrey =0xA9A9A9 , CRGB::DarkGreen =0x006400 ,
  CRGB::DarkKhaki =0xBDB76B , CRGB::DarkMagenta =0x8B008B , CRGB::DarkOliveGreen =0x556B2F , CRGB::DarkOrange =0xFF8C00 ,
  CRGB::DarkOrchid =0x9932CC , CRGB::DarkRed =0x8B0000 , CRGB::DarkSalmon =0xE9967A , CRGB::DarkSeaGreen =0x8FBC8F ,
  CRGB::DarkSlateBlue =0x483D8B , CRGB::DarkSlateGray =0x2F4F4F , CRGB::DarkSlateGrey =0x2F4F4F , CRGB::DarkTurquoise =0x00CED1 ,
  CRGB::DarkViolet =0x9400D3 , CRGB::DeepPink =0xFF1493 , CRGB::DeepSkyBlue =0x00BFFF , CRGB::DimGray =0x696969 ,
  CRGB::DimGrey =0x696969 , CRGB::DodgerBlue =0x1E90FF , CRGB::FireBrick =0xB22222 , CRGB::FloralWhite =0xFFFAF0 ,
  CRGB::ForestGreen =0x228B22 , CRGB::Fuchsia =0xFF00FF , CRGB::Gainsboro =0xDCDCDC , CRGB::GhostWhite =0xF8F8FF ,
  CRGB::Gold =0xFFD700 , CRGB::Goldenrod =0xDAA520 , CRGB::Gray =0x808080 , CRGB::Grey =0x808080 ,
  CRGB::Green =0x008000 , CRGB::GreenYellow =0xADFF2F , CRGB::Honeydew =0xF0FFF0 , CRGB::HotPink =0xFF69B4 ,
  CRGB::IndianRed =0xCD5C5C , CRGB::Indigo =0x4B0082 , CRGB::Ivory =0xFFFFF0 , CRGB::Khaki =0xF0E68C ,
  CRGB::Lavender =0xE6E6FA , CRGB::LavenderBlush =0xFFF0F5 , CRGB::LawnGreen =0x7CFC00 , CRGB::LemonChiffon =0xFFFACD ,
  CRGB::LightBlue =0xADD8E6 , CRGB::LightCoral =0xF08080 , CRGB::LightCyan =0xE0FFFF , CRGB::LightGoldenrodYellow =0xFAFAD2 ,
  CRGB::LightGreen =0x90EE90 , CRGB::LightGrey =0xD3D3D3 , CRGB::LightPink =0xFFB6C1 , CRGB::LightSalmon =0xFFA07A ,
  CRGB::LightSeaGreen =0x20B2AA , CRGB::LightSkyBlue =0x87CEFA , CRGB::LightSlateGray =0x778899 , CRGB::LightSlateGrey =0x778899 ,
  CRGB::LightSteelBlue =0xB0C4DE , CRGB::LightYellow =0xFFFFE0 , CRGB::Lime =0x00FF00 , CRGB::LimeGreen =0x32CD32 ,
  CRGB::Linen =0xFAF0E6 , CRGB::Magenta =0xFF00FF , CRGB::Maroon =0x800000 , CRGB::MediumAquamarine =0x66CDAA ,
  CRGB::MediumBlue =0x0000CD , CRGB::MediumOrchid =0xBA55D3 , CRGB::MediumPurple =0x9370DB , CRGB::MediumSeaGreen =0x3CB371 ,
  CRGB::MediumSlateBlue =0x7B68EE , CRGB::MediumSpringGreen =0x00FA9A , CRGB::MediumTurquoise =0x48D1CC , CRGB::MediumVioletRed =0xC71585 ,
  CRGB::MidnightBlue =0x191970 , CRGB::MintCream =0xF5FFFA , CRGB::MistyRose =0xFFE4E1 , CRGB::Moccasin =0xFFE4B5 ,
  CRGB::NavajoWhite =0xFFDEAD , CRGB::Navy =0x000080 , CRGB::OldLace =0xFDF5E6 , CRGB::Olive =0x808000 ,
  CRGB::OliveDrab =0x6B8E23 , CRGB::Orange =0xFFA500 , CRGB::OrangeRed =0xFF4500 , CRGB::Orchid =0xDA70D6 ,
  CRGB::PaleGoldenrod =0xEEE8AA , CRGB::PaleGreen =0x98FB98 , CRGB::PaleTurquoise =0xAFEEEE , CRGB::PaleVioletRed =0xDB7093 ,
  CRGB::PapayaWhip =0xFFEFD5 , CRGB::PeachPuff =0xFFDAB9 , CRGB::Peru =0xCD853F , CRGB::Pink =0xFFC0CB ,
  CRGB::Plaid =0xCC5533 , CRGB::Plum =0xDDA0DD , CRGB::PowderBlue =0xB0E0E6 , CRGB::Purple =0x800080 ,
  CRGB::Red =0xFF0000 , CRGB::RosyBrown =0xBC8F8F , CRGB::RoyalBlue =0x4169E1 , CRGB::SaddleBrown =0x8B4513 ,
  CRGB::Salmon =0xFA8072 , CRGB::SandyBrown =0xF4A460 , CRGB::SeaGreen =0x2E8B57 , CRGB::Seashell =0xFFF5EE ,
  CRGB::Sienna =0xA0522D , CRGB::Silver =0xC0C0C0 , CRGB::SkyBlue =0x87CEEB , CRGB::SlateBlue =0x6A5ACD ,
  CRGB::SlateGray =0x708090 , CRGB::SlateGrey =0x708090 , CRGB::Snow =0xFFFAFA , CRGB::SpringGreen =0x00FF7F ,
  CRGB::SteelBlue =0x4682B4 , CRGB::Tan =0xD2B48C , CRGB::Teal =0x008080 , CRGB::Thistle =0xD8BFD8 ,
  CRGB::Tomato =0xFF6347 , CRGB::Turquoise =0x40E0D0 , CRGB::Violet =0xEE82EE , CRGB::Wheat =0xF5DEB3 ,
  CRGB::White =0xFFFFFF , CRGB::WhiteSmoke =0xF5F5F5 , CRGB::Yellow =0xFFFF00 , CRGB::YellowGreen =0x9ACD32 ,
  CRGB::FairyLight =0xFFE42D , CRGB::FairyLightNCC =0xFF9D2A
}
 Predefined RGB colors. More...
 

Functions

void hsv2rgb_rainbow (const CHSV &hsv, CRGB &rgb)
 Forward declaration of hsv2rgb_rainbow here, to avoid circular dependencies.
 
static CRGB CRGB::blend (const CRGB &p1, const CRGB &p2, fract8 amountOfP2)
 
FASTLED_FORCE_INLINE uint8_t & CRGB::operator[] (uint8_t x)
 Array access operator to index into the CRGB object.
 
FASTLED_FORCE_INLINE const uint8_t & CRGB::operator[] (uint8_t x) const
 Array access operator to index into the CRGB object.
 
FASTLED_FORCE_INLINE CRGB::CRGB ()=default
 Default constructor.
 
constexpr CRGB::CRGB (uint8_t ir, uint8_t ig, uint8_t ib) noexcept
 Allow construction from red, green, and blue.
 
constexpr CRGB::CRGB (uint32_t colorcode) noexcept
 Allow construction from 32-bit (really 24-bit) bit 0xRRGGBB color code.
 
constexpr uint32_t CRGB::as_uint32_t () const noexcept
 
constexpr CRGB::CRGB (LEDColorCorrection colorcode) noexcept
 Allow construction from a LEDColorCorrection enum.
 
constexpr CRGB::CRGB (ColorTemperature colorcode) noexcept
 Allow construction from a ColorTemperature enum.
 
FASTLED_FORCE_INLINE CRGB::CRGB (const CRGB &rhs)=default
 Allow copy construction.
 
FASTLED_FORCE_INLINE CRGB::CRGB (const CHSV &rhs)
 Allow construction from a CHSV color.
 
FASTLED_FORCE_INLINE CRGBCRGB::operator= (const CRGB &rhs)=default
 Allow assignment from one RGB struct to another.
 
FASTLED_FORCE_INLINE CRGBCRGB::operator= (const uint32_t colorcode)
 Allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code.
 
FASTLED_FORCE_INLINE CRGBCRGB::setRGB (uint8_t nr, uint8_t ng, uint8_t nb)
 Allow assignment from red, green, and blue.
 
FASTLED_FORCE_INLINE CRGBCRGB::setHSV (uint8_t hue, uint8_t sat, uint8_t val)
 Allow assignment from hue, saturation, and value.
 
FASTLED_FORCE_INLINE CRGBCRGB::setHue (uint8_t hue)
 Allow assignment from just a hue.
 
FASTLED_FORCE_INLINE CRGBCRGB::operator= (const CHSV &rhs)
 Allow assignment from HSV color.
 
FASTLED_FORCE_INLINE CRGBCRGB::setColorCode (uint32_t colorcode)
 Allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code.
 
FASTLED_FORCE_INLINE CRGBCRGB::operator+= (const CRGB &rhs)
 Add one CRGB to another, saturating at 0xFF for each channel.
 
FASTLED_FORCE_INLINE CRGBCRGB::addToRGB (uint8_t d)
 Add a constant to each channel, saturating at 0xFF.
 
FASTLED_FORCE_INLINE CRGBCRGB::operator-= (const CRGB &rhs)
 Subtract one CRGB from another, saturating at 0x00 for each channel.
 
FASTLED_FORCE_INLINE CRGBCRGB::subtractFromRGB (uint8_t d)
 Subtract a constant from each channel, saturating at 0x00.
 
FASTLED_FORCE_INLINE CRGBCRGB::operator-- ()
 Subtract a constant of '1' from each channel, saturating at 0x00.
 
FASTLED_FORCE_INLINE CRGB CRGB::operator-- (int)
 Subtract a constant of '1' from each channel, saturating at 0x00.
 
FASTLED_FORCE_INLINE CRGBCRGB::operator++ ()
 Add a constant of '1' from each channel, saturating at 0xFF.
 
FASTLED_FORCE_INLINE CRGB CRGB::operator++ (int)
 Add a constant of '1' from each channel, saturating at 0xFF.
 
FASTLED_FORCE_INLINE CRGBCRGB::operator/= (uint8_t d)
 Divide each of the channels by a constant.
 
FASTLED_FORCE_INLINE CRGBCRGB::operator>>= (uint8_t d)
 Right shift each of the channels by a constant.
 
FASTLED_FORCE_INLINE CRGBCRGB::operator*= (uint8_t d)
 Multiply each of the channels by a constant, saturating each channel at 0xFF.
 
FASTLED_FORCE_INLINE CRGBCRGB::nscale8_video (uint8_t scaledown)
 Scale down a RGB to N/256ths of it's current brightness using "video" dimming rules.
 
FASTLED_FORCE_INLINE CRGBCRGB::operator%= (uint8_t scaledown)
 %= is a synonym for nscale8_video().
 
FASTLED_FORCE_INLINE CRGBCRGB::fadeLightBy (uint8_t fadefactor)
 fadeLightBy is a synonym for nscale8_video(), as a fade instead of a scale
 
FASTLED_FORCE_INLINE CRGBCRGB::nscale8 (uint8_t scaledown)
 Scale down a RGB to N/256ths of its current brightness, using "plain math" dimming rules.
 
FASTLED_FORCE_INLINE CRGBCRGB::nscale8 (const CRGB &scaledown)
 Scale down a RGB to N/256ths of its current brightness, using "plain math" dimming rules.
 
constexpr CRGB CRGB::nscale8_constexpr (const CRGB scaledown) const
 
FASTLED_FORCE_INLINE CRGB CRGB::scale8 (uint8_t scaledown) const
 Return a CRGB object that is a scaled down version of this object.
 
FASTLED_FORCE_INLINE CRGB CRGB::scale8 (const CRGB &scaledown) const
 Return a CRGB object that is a scaled down version of this object.
 
FASTLED_FORCE_INLINE CRGBCRGB::fadeToBlackBy (uint8_t fadefactor)
 fadeToBlackBy is a synonym for nscale8(), as a fade instead of a scale
 
FASTLED_FORCE_INLINE CRGBCRGB::operator|= (const CRGB &rhs)
 "or" operator brings each channel up to the higher of the two values
 
FASTLED_FORCE_INLINE CRGBCRGB::operator|= (uint8_t d)
 "or" operator brings each channel up to the higher of the two values
 
FASTLED_FORCE_INLINE CRGBCRGB::operator&= (const CRGB &rhs)
 "and" operator brings each channel down to the lower of the two values
 
FASTLED_FORCE_INLINE CRGBCRGB::operator&= (uint8_t d)
 "and" operator brings each channel down to the lower of the two values
 
constexpr CRGB::operator bool () const
 This allows testing a CRGB for zero-ness.
 
constexpr CRGB::operator uint32_t () const
 Converts a CRGB to a 32-bit color having an alpha of 255.
 
constexpr CRGB CRGB::operator- () const
 Invert each channel.
 
 CRGB::operator rgb24 () const
 Convert to an rgb24 object, used with the SmartMatrix library.
 
FASTLED_FORCE_INLINE uint8_t CRGB::getLuma () const
 Get the "luma" of a CRGB object.
 
FASTLED_FORCE_INLINE uint8_t CRGB::getAverageLight () const
 Get the average of the R, G, and B values.
 
FASTLED_FORCE_INLINE void CRGB::maximizeBrightness (uint8_t limit=255)
 Maximize the brightness of this CRGB object.
 
static CRGB CRGB::computeAdjustment (uint8_t scale, const CRGB &colorCorrection, const CRGB &colorTemperature)
 Calculates the combined color adjustment to the LEDs at a given scale, color correction, and color temperature.
 
FASTLED_FORCE_INLINE CRGB 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.
 
FASTLED_FORCE_INLINE CRGB 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.
 
FASTLED_FORCE_INLINE uint8_t CRGB::getParity ()
 Returns 0 or 1, depending on the lowest bit of the sum of the color components.
 
FASTLED_FORCE_INLINE void CRGB::setParity (uint8_t parity)
 Adjusts the color in the smallest way possible so that the parity of the coloris now the desired value.
 
FASTLED_FORCE_INLINE bool operator== (const CRGB &lhs, const CRGB &rhs)
 Check if two CRGB objects have the same color data.
 
FASTLED_FORCE_INLINE bool operator!= (const CRGB &lhs, const CRGB &rhs)
 Check if two CRGB objects do not have the same color data.
 
FASTLED_FORCE_INLINE bool operator== (const CHSV &lhs, const CHSV &rhs)
 Check if two CHSV objects have the same color data.
 
FASTLED_FORCE_INLINE bool operator!= (const CHSV &lhs, const CHSV &rhs)
 Check if two CHSV objects do not have the same color data.
 
FASTLED_FORCE_INLINE bool operator< (const CRGB &lhs, const CRGB &rhs)
 Check if the sum of the color channels in one CRGB object is less than another.
 
FASTLED_FORCE_INLINE bool operator> (const CRGB &lhs, const CRGB &rhs)
 Check if the sum of the color channels in one CRGB object is greater than another.
 
FASTLED_FORCE_INLINE bool operator>= (const CRGB &lhs, const CRGB &rhs)
 Check if the sum of the color channels in one CRGB object is greater than or equal to another.
 
FASTLED_FORCE_INLINE bool operator<= (const CRGB &lhs, const CRGB &rhs)
 Check if the sum of the color channels in one CRGB object is less than or equal to another.
 
FASTLED_FORCE_INLINE CRGB operator/ (const CRGB &p1, uint8_t d)
 Divide each of the channels by a constant.
 
FASTLED_FORCE_INLINE CRGB operator& (const CRGB &p1, const CRGB &p2)
 Combine two CRGB objects, taking the smallest value of each channel.
 
FASTLED_FORCE_INLINE CRGB operator| (const CRGB &p1, const CRGB &p2)
 Combine two CRGB objects, taking the largest value of each channel.
 
FASTLED_FORCE_INLINE CRGB operator+ (const CRGB &p1, const CRGB &p2)
 Add one CRGB to another, saturating at 0xFF for each channel.
 
FASTLED_FORCE_INLINE CRGB operator- (const CRGB &p1, const CRGB &p2)
 Subtract one CRGB from another, saturating at 0x00 for each channel.
 
FASTLED_FORCE_INLINE CRGB operator* (const CRGB &p1, uint8_t d)
 Multiply each of the channels by a constant, saturating each channel at 0xFF.
 
FASTLED_FORCE_INLINE CRGB operator% (const CRGB &p1, uint8_t d)
 Scale using CRGB::nscale8_video()
 
 FASTLED_DEFINE_OUTPUT_OPERATOR (CRGB)
 

Variables

uint8_t   CRGB::r 
 Red channel value. More...
 
uint8_t   CRGB::red 
 Red channel value. More...
 
union { 
 
   uint8_t   CRGB::r 
 Red channel value. More...
 
   uint8_t   CRGB::red 
 Red channel value. More...
 
 
 
uint8_t   CRGB::g 
 Green channel value. More...
 
uint8_t   CRGB::green 
 Green channel value. More...
 
union { 
 
   uint8_t   CRGB::g 
 Green channel value. More...
 
   uint8_t   CRGB::green 
 Green channel value. More...
 
 
 
uint8_t   CRGB::b 
 Blue channel value. More...
 
uint8_t   CRGB::blue 
 Blue channel value. More...
 
union { 
 
   uint8_t   CRGB::b 
 Blue channel value. More...
 
   uint8_t   CRGB::blue 
 Blue channel value. More...
 
 
 
struct { 
 
   union { 
 
      uint8_t   CRGB::r 
 Red channel value. More...
 
      uint8_t   CRGB::red 
 Red channel value. More...
 
   }  
 
   union { 
 
      uint8_t   CRGB::g 
 Green channel value. More...
 
      uint8_t   CRGB::green 
 Green channel value. More...
 
   }  
 
   union { 
 
      uint8_t   CRGB::b 
 Blue channel value. More...
 
      uint8_t   CRGB::blue 
 Blue channel value. More...
 
   }  
 
 
 
uint8_t   CRGB::raw [3] 
 Access the red, green, and blue data as an array. More...
 
union { 
 
   struct { 
 
      union { 
 
         uint8_t   CRGB::r 
 Red channel value. More...
 
         uint8_t   CRGB::red 
 Red channel value. More...
 
      }  
 
      union { 
 
         uint8_t   CRGB::g 
 Green channel value. More...
 
         uint8_t   CRGB::green 
 Green channel value. More...
 
      }  
 
      union { 
 
         uint8_t   CRGB::b 
 Blue channel value. More...
 
         uint8_t   CRGB::blue 
 Blue channel value. More...
 
      }  
 
   }  
 
   uint8_t   CRGB::raw [3] 
 Access the red, green, and blue data as an array. More...
 
};  
 

Enumeration Type Documentation

◆ HTMLColorCode

Predefined RGB colors.

Enumerator
AliceBlue 
Amethyst 
AntiqueWhite 
Aqua 
Aquamarine 
Azure 
Beige 
Bisque 
Black 
BlanchedAlmond 
Blue 
BlueViolet 
Brown 
BurlyWood 
CadetBlue 
Chartreuse 
Chocolate 
Coral 
CornflowerBlue 
Cornsilk 
Crimson 
Cyan 
DarkBlue 
DarkCyan 
DarkGoldenrod 
DarkGray 
DarkGrey 
DarkGreen 
DarkKhaki 
DarkMagenta 
DarkOliveGreen 
DarkOrange 
DarkOrchid 
DarkRed 
DarkSalmon 
DarkSeaGreen 
DarkSlateBlue 
DarkSlateGray 
DarkSlateGrey 
DarkTurquoise 
DarkViolet 
DeepPink 
DeepSkyBlue 
DimGray 
DimGrey 
DodgerBlue 
FireBrick 
FloralWhite 
ForestGreen 
Fuchsia 
Gainsboro 
GhostWhite 
Gold 
Goldenrod 
Gray 
Grey 
Green 
GreenYellow 
Honeydew 
HotPink 
IndianRed 
Indigo 
Ivory 
Khaki 
Lavender 
LavenderBlush 
LawnGreen 
LemonChiffon 
LightBlue 
LightCoral 
LightCyan 
LightGoldenrodYellow 
LightGreen 
LightGrey 
LightPink 
LightSalmon 
LightSeaGreen 
LightSkyBlue 
LightSlateGray 
LightSlateGrey 
LightSteelBlue 
LightYellow 
Lime 
LimeGreen 
Linen 
Magenta 
Maroon 
MediumAquamarine 
MediumBlue 
MediumOrchid 
MediumPurple 
MediumSeaGreen 
MediumSlateBlue 
MediumSpringGreen 
MediumTurquoise 
MediumVioletRed 
MidnightBlue 
MintCream 
MistyRose 
Moccasin 
NavajoWhite 
Navy 
OldLace 
Olive 
OliveDrab 
Orange 
OrangeRed 
Orchid 
PaleGoldenrod 
PaleGreen 
PaleTurquoise 
PaleVioletRed 
PapayaWhip 
PeachPuff 
Peru 
Pink 
Plaid 
Plum 
PowderBlue 
Purple 
Red 
RosyBrown 
RoyalBlue 
SaddleBrown 
Salmon 
SandyBrown 
SeaGreen 
Seashell 
Sienna 
Silver 
SkyBlue 
SlateBlue 
SlateGray 
SlateGrey 
Snow 
SpringGreen 
SteelBlue 
Tan 
Teal 
Thistle 
Tomato 
Turquoise 
Violet 
Wheat 
White 
WhiteSmoke 
Yellow 
YellowGreen 
FairyLight 
FairyLightNCC 

Definition at line 470 of file crgb.h.

Function Documentation

◆ addToRGB()

FASTLED_FORCE_INLINE CRGB & CRGB::addToRGB ( uint8_t d)

Add a constant to each channel, saturating at 0xFF.

Note
This is NOT an operator+= overload because the compiler can't usefully decide when it's being passed a 32-bit constant (e.g. CRGB::Red) and an 8-bit one (CRGB::Blue)

Definition at line 28 of file crgb.hpp.

◆ as_uint32_t()

uint32_t CRGB::as_uint32_t ( ) const
inlineconstexprnoexcept

Definition at line 101 of file crgb.h.

◆ blend()

CRGB CRGB::blend ( const CRGB & p1,
const CRGB & p2,
fract8 amountOfP2 )
static

Definition at line 35 of file crgb.cpp.

◆ computeAdjustment()

CRGB CRGB::computeAdjustment ( uint8_t scale,
const CRGB & colorCorrection,
const CRGB & colorTemperature )
static

Calculates the combined color adjustment to the LEDs at a given scale, color correction, and color temperature.

Parameters
scalethe scale value for the RGB data (i.e. brightness)
colorCorrectioncolor correction to apply
colorTemperaturecolor temperature to apply
Returns
a CRGB object representing the adjustment, including color correction and color temperature

Definition at line 10 of file crgb.cpp.

◆ CRGB() [1/6]

FASTLED_FORCE_INLINE CRGB::CRGB ( )
default

Default constructor.

Warning
Default values are UNITIALIZED!

◆ CRGB() [2/6]

CRGB::CRGB ( ColorTemperature colorcode)
inlineconstexprnoexcept

Allow construction from a ColorTemperature enum.

Parameters
colorcodean ColorTemperature enumeration value

Definition at line 117 of file crgb.h.

◆ CRGB() [3/6]

FASTLED_FORCE_INLINE CRGB::CRGB ( const CHSV & rhs)
inline

Allow construction from a CHSV color.

Definition at line 126 of file crgb.h.

◆ CRGB() [4/6]

CRGB::CRGB ( LEDColorCorrection colorcode)
inlineconstexprnoexcept

Allow construction from a LEDColorCorrection enum.

Parameters
colorcodean LEDColorCorrect enumeration value

Definition at line 110 of file crgb.h.

◆ CRGB() [5/6]

CRGB::CRGB ( uint32_t colorcode)
inlineconstexprnoexcept

Allow construction from 32-bit (really 24-bit) bit 0xRRGGBB color code.

Parameters
colorcodea packed 24 bit color code

Definition at line 96 of file crgb.h.

◆ CRGB() [6/6]

CRGB::CRGB ( uint8_t ir,
uint8_t ig,
uint8_t ib )
inlineconstexprnoexcept

Allow construction from red, green, and blue.

Parameters
irinput red value
iginput green value
ibinput blue value

Definition at line 89 of file crgb.h.

◆ fadeLightBy()

FASTLED_FORCE_INLINE CRGB & CRGB::fadeLightBy ( uint8_t fadefactor)

fadeLightBy is a synonym for nscale8_video(), as a fade instead of a scale

Parameters
fadefactorthe amount to fade, sent to nscale8_video() as (255 - fadefactor)

Definition at line 87 of file crgb.hpp.

◆ fadeToBlackBy()

CRGB & CRGB::fadeToBlackBy ( uint8_t fadefactor)
inline

fadeToBlackBy is a synonym for nscale8(), as a fade instead of a scale

Parameters
fadefactorthe amount to fade, sent to nscale8() as (255 - fadefactor)
Examples
RGBSetDemo.ino.

Definition at line 148 of file crgb.hpp.

◆ FASTLED_DEFINE_OUTPUT_OPERATOR()

FASTLED_DEFINE_OUTPUT_OPERATOR ( CRGB )

Definition at line 733 of file crgb.h.

◆ getAverageLight()

FASTLED_FORCE_INLINE uint8_t CRGB::getAverageLight ( ) const

Get the average of the R, G, and B values.

Definition at line 165 of file crgb.hpp.

◆ getLuma()

FASTLED_FORCE_INLINE uint8_t CRGB::getLuma ( ) const

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 154 of file crgb.hpp.

◆ getParity()

FASTLED_FORCE_INLINE uint8_t CRGB::getParity ( )
inline

Returns 0 or 1, depending on the lowest bit of the sum of the color components.

Definition at line 394 of file crgb.h.

◆ hsv2rgb_rainbow()

void hsv2rgb_rainbow ( const CHSV & hsv,
CRGB & rgb )
extern

Forward declaration of hsv2rgb_rainbow here, to avoid circular dependencies.

Definition at line 251 of file hsv2rgb.cpp.

◆ lerp16()

FASTLED_FORCE_INLINE CRGB 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.

Definition at line 189 of file crgb.hpp.

◆ lerp8()

FASTLED_FORCE_INLINE CRGB 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.

Definition at line 178 of file crgb.hpp.

◆ maximizeBrightness()

FASTLED_FORCE_INLINE void CRGB::maximizeBrightness ( uint8_t limit = 255)
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.

Note
This does not keep the same ratios between channels, just the same difference in absolute values.

Definition at line 367 of file crgb.h.

◆ nscale8() [1/2]

FASTLED_FORCE_INLINE CRGB & CRGB::nscale8 ( const CRGB & scaledown)

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.

See also
scale8

Definition at line 124 of file crgb.hpp.

◆ nscale8() [2/2]

FASTLED_FORCE_INLINE CRGB & CRGB::nscale8 ( uint8_t scaledown)

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.

See also
nscale8x3

Definition at line 108 of file crgb.hpp.

◆ nscale8_constexpr()

CRGB CRGB::nscale8_constexpr ( const CRGB scaledown) const
constexpr

Definition at line 114 of file crgb.hpp.

◆ nscale8_video()

FASTLED_FORCE_INLINE CRGB & CRGB::nscale8_video ( uint8_t scaledown)

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.

See also
nscale8x3_video

Definition at line 75 of file crgb.hpp.

◆ operator bool()

CRGB::operator bool ( ) const
inlineexplicitconstexpr

This allows testing a CRGB for zero-ness.

Definition at line 323 of file crgb.h.

◆ operator rgb24()

CRGB::operator rgb24 ( ) const
inline

Convert to an rgb24 object, used with the SmartMatrix library.

See also
https://github.com/pixelmatix/SmartMatrix

Definition at line 346 of file crgb.h.

◆ operator uint32_t()

CRGB::operator uint32_t ( ) const
inlineexplicitconstexpr

Converts a CRGB to a 32-bit color having an alpha of 255.

Definition at line 329 of file crgb.h.

◆ operator!=() [1/2]

FASTLED_FORCE_INLINE bool operator!= ( const CHSV & lhs,
const CHSV & rhs )

Check if two CHSV objects do not have the same color data.

Definition at line 652 of file crgb.h.

◆ operator!=() [2/2]

FASTLED_FORCE_INLINE bool operator!= ( const CRGB & lhs,
const CRGB & rhs )

Check if two CRGB objects do not have the same color data.

Definition at line 640 of file crgb.h.

◆ operator%()

FASTLED_FORCE_INLINE CRGB operator% ( const CRGB & p1,
uint8_t d )

Scale using CRGB::nscale8_video()

Definition at line 226 of file crgb.hpp.

◆ operator%=()

FASTLED_FORCE_INLINE CRGB & CRGB::operator%= ( uint8_t scaledown)

%= is a synonym for nscale8_video().

Think of it is scaling down by "a percentage"

Definition at line 81 of file crgb.hpp.

◆ operator&()

FASTLED_FORCE_INLINE CRGB operator& ( const CRGB & p1,
const CRGB & p2 )

Combine two CRGB objects, taking the smallest value of each channel.

Definition at line 703 of file crgb.h.

◆ operator&=() [1/2]

FASTLED_FORCE_INLINE CRGB & CRGB::operator&= ( const CRGB & rhs)
inline

"and" operator brings each channel down to the lower of the two values

Definition at line 305 of file crgb.h.

◆ operator&=() [2/2]

FASTLED_FORCE_INLINE CRGB & CRGB::operator&= ( uint8_t d)
inline

"and" operator brings each channel down to the lower of the two values

Definition at line 314 of file crgb.h.

◆ operator*()

FASTLED_FORCE_INLINE CRGB operator* ( const CRGB & p1,
uint8_t d )

Multiply each of the channels by a constant, saturating each channel at 0xFF.

Definition at line 218 of file crgb.hpp.

◆ operator*=()

FASTLED_FORCE_INLINE CRGB & CRGB::operator*= ( uint8_t d)

Multiply each of the channels by a constant, saturating each channel at 0xFF.

Definition at line 67 of file crgb.hpp.

◆ operator+()

FASTLED_FORCE_INLINE CRGB operator+ ( const CRGB & p1,
const CRGB & p2 )

Add one CRGB to another, saturating at 0xFF for each channel.

Definition at line 202 of file crgb.hpp.

◆ operator++() [1/2]

FASTLED_FORCE_INLINE CRGB & CRGB::operator++ ( )

Add a constant of '1' from each channel, saturating at 0xFF.

Definition at line 45 of file crgb.hpp.

◆ operator++() [2/2]

FASTLED_FORCE_INLINE CRGB CRGB::operator++ ( int )

Add a constant of '1' from each channel, saturating at 0xFF.

Definition at line 52 of file crgb.hpp.

◆ operator+=()

FASTLED_FORCE_INLINE CRGB & CRGB::operator+= ( const CRGB & rhs)

Add one CRGB to another, saturating at 0xFF for each channel.

Definition at line 20 of file crgb.hpp.

◆ operator-() [1/2]

CRGB CRGB::operator- ( ) const
inlineconstexpr

Invert each channel.

Definition at line 338 of file crgb.h.

◆ operator-() [2/2]

FASTLED_FORCE_INLINE CRGB operator- ( const CRGB & p1,
const CRGB & p2 )

Subtract one CRGB from another, saturating at 0x00 for each channel.

Definition at line 210 of file crgb.hpp.

◆ operator--() [1/2]

FASTLED_FORCE_INLINE CRGB & CRGB::operator-- ( )

Subtract a constant of '1' from each channel, saturating at 0x00.

Definition at line 94 of file crgb.hpp.

◆ operator--() [2/2]

FASTLED_FORCE_INLINE CRGB CRGB::operator-- ( int )

Subtract a constant of '1' from each channel, saturating at 0x00.

Definition at line 101 of file crgb.hpp.

◆ operator-=()

FASTLED_FORCE_INLINE CRGB & CRGB::operator-= ( const CRGB & rhs)

Subtract one CRGB from another, saturating at 0x00 for each channel.

Definition at line 36 of file crgb.hpp.

◆ operator/()

FASTLED_FORCE_INLINE CRGB operator/ ( const CRGB & p1,
uint8_t d )

Divide each of the channels by a constant.

Definition at line 696 of file crgb.h.

◆ operator/=()

FASTLED_FORCE_INLINE CRGB & CRGB::operator/= ( uint8_t d)
inline

Divide each of the channels by a constant.

Definition at line 224 of file crgb.h.

◆ operator<()

FASTLED_FORCE_INLINE bool operator< ( const CRGB & lhs,
const CRGB & rhs )

Check if the sum of the color channels in one CRGB object is less than another.

Definition at line 658 of file crgb.h.

◆ operator<=()

FASTLED_FORCE_INLINE bool operator<= ( const CRGB & lhs,
const CRGB & rhs )

Check if the sum of the color channels in one CRGB object is less than or equal to another.

Definition at line 685 of file crgb.h.

◆ operator=() [1/2]

FASTLED_FORCE_INLINE CRGB & CRGB::operator= ( const CHSV & rhs)
inline

Allow assignment from HSV color.

Definition at line 176 of file crgb.h.

◆ operator=() [2/2]

FASTLED_FORCE_INLINE CRGB & CRGB::operator= ( const uint32_t colorcode)
inline

Allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code.

Parameters
colorcodea packed 24 bit color code

Definition at line 136 of file crgb.h.

◆ operator==() [1/2]

FASTLED_FORCE_INLINE bool operator== ( const CHSV & lhs,
const CHSV & rhs )

Check if two CHSV objects have the same color data.

Definition at line 646 of file crgb.h.

◆ operator==() [2/2]

FASTLED_FORCE_INLINE bool operator== ( const CRGB & lhs,
const CRGB & rhs )

Check if two CRGB objects have the same color data.

Definition at line 634 of file crgb.h.

◆ operator>()

FASTLED_FORCE_INLINE bool operator> ( const CRGB & lhs,
const CRGB & rhs )

Check if the sum of the color channels in one CRGB object is greater than another.

Definition at line 667 of file crgb.h.

◆ operator>=()

FASTLED_FORCE_INLINE bool operator>= ( const CRGB & lhs,
const CRGB & rhs )

Check if the sum of the color channels in one CRGB object is greater than or equal to another.

Definition at line 676 of file crgb.h.

◆ operator>>=()

FASTLED_FORCE_INLINE CRGB & CRGB::operator>>= ( uint8_t d)
inline

Right shift each of the channels by a constant.

Definition at line 233 of file crgb.h.

◆ operator[]() [1/2]

FASTLED_FORCE_INLINE uint8_t & CRGB::operator[] ( uint8_t x)
inline

Array access operator to index into the CRGB object.

Parameters
xthe index to retrieve (0-2)
Returns
the CRGB::raw value for the given index

Definition at line 68 of file crgb.h.

◆ operator[]() [2/2]

FASTLED_FORCE_INLINE const uint8_t & CRGB::operator[] ( uint8_t x) const
inline

Array access operator to index into the CRGB object.

Parameters
xthe index to retrieve (0-2)
Returns
the CRGB::raw value for the given index

Definition at line 76 of file crgb.h.

◆ operator|()

FASTLED_FORCE_INLINE CRGB operator| ( const CRGB & p1,
const CRGB & p2 )

Combine two CRGB objects, taking the largest value of each channel.

Definition at line 711 of file crgb.h.

◆ operator|=() [1/2]

FASTLED_FORCE_INLINE CRGB & CRGB::operator|= ( const CRGB & rhs)
inline

"or" operator brings each channel up to the higher of the two values

Definition at line 287 of file crgb.h.

◆ operator|=() [2/2]

FASTLED_FORCE_INLINE CRGB & CRGB::operator|= ( uint8_t d)
inline

"or" operator brings each channel up to the higher of the two values

Definition at line 296 of file crgb.h.

◆ scale8() [1/2]

FASTLED_FORCE_INLINE CRGB CRGB::scale8 ( const CRGB & scaledown) const

Return a CRGB object that is a scaled down version of this object.

Definition at line 139 of file crgb.hpp.

◆ scale8() [2/2]

FASTLED_FORCE_INLINE CRGB CRGB::scale8 ( uint8_t scaledown) const

Return a CRGB object that is a scaled down version of this object.

Definition at line 132 of file crgb.hpp.

◆ setColorCode()

FASTLED_FORCE_INLINE CRGB & CRGB::setColorCode ( uint32_t colorcode)
inline

Allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code.

Parameters
colorcodea packed 24 bit color code

Definition at line 184 of file crgb.h.

◆ setHSV()

FASTLED_FORCE_INLINE CRGB & CRGB::setHSV ( uint8_t hue,
uint8_t sat,
uint8_t val )
inline

Allow assignment from hue, saturation, and value.

Parameters
huecolor hue
satcolor saturation
valcolor value (brightness)

Definition at line 160 of file crgb.h.

◆ setHue()

FASTLED_FORCE_INLINE CRGB & CRGB::setHue ( uint8_t hue)
inline

Allow assignment from just a hue.

Saturation and value (brightness) are set automatically to max.

Parameters
huecolor hue

Definition at line 169 of file crgb.h.

◆ setParity()

FASTLED_FORCE_INLINE void CRGB::setParity ( uint8_t parity)
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 422 of file crgb.h.

◆ setRGB()

FASTLED_FORCE_INLINE CRGB & CRGB::setRGB ( uint8_t nr,
uint8_t ng,
uint8_t nb )
inline

Allow assignment from red, green, and blue.

Parameters
nrnew red value
ngnew green value
nbnew blue value

Definition at line 148 of file crgb.h.

◆ subtractFromRGB()

FASTLED_FORCE_INLINE CRGB & CRGB::subtractFromRGB ( uint8_t d)

Subtract a constant from each channel, saturating at 0x00.

Note
This is NOT an operator+= overload because the compiler can't usefully decide when it's being passed a 32-bit constant (e.g. CRGB::Red) and an 8-bit one (CRGB::Blue)

Definition at line 59 of file crgb.hpp.

Variable Documentation

◆ [] [1/2]

uint8_t { ... } ::b

Blue channel value.

Definition at line 51 of file crgb.h.

◆ b [2/2]

uint8_t CRGB::b

Blue channel value.

Examples
AnalogOutput.ino.

Definition at line 51 of file crgb.h.

◆ [] [1/2]

uint8_t { ... } ::blue

Blue channel value.

Definition at line 52 of file crgb.h.

◆ blue [2/2]

uint8_t CRGB::blue

Blue channel value.

Definition at line 52 of file crgb.h.

◆ [] [1/2]

uint8_t { ... } ::g

Green channel value.

Definition at line 47 of file crgb.h.

◆ g [2/2]

uint8_t CRGB::g

Green channel value.

Examples
AnalogOutput.ino.

Definition at line 47 of file crgb.h.

◆ [] [1/2]

uint8_t { ... } ::green

Green channel value.

Definition at line 48 of file crgb.h.

◆ green [2/2]

uint8_t CRGB::green

Green channel value.

Definition at line 48 of file crgb.h.

◆ [] [1/2]

uint8_t { ... } ::r

Red channel value.

Definition at line 43 of file crgb.h.

◆ r [2/2]

uint8_t CRGB::r

Red channel value.

Examples
AnalogOutput.ino.

Definition at line 43 of file crgb.h.

◆ [] [1/2]

uint8_t { ... } ::raw[3]

Access the red, green, and blue data as an array.

Where:

  • raw[0] is the red value
  • raw[1] is the green value
  • raw[2] is the blue value

Definition at line 60 of file crgb.h.

◆ raw [2/2]

uint8_t CRGB::raw[3]

Access the red, green, and blue data as an array.

Where:

  • raw[0] is the red value
  • raw[1] is the green value
  • raw[2] is the blue value

Definition at line 60 of file crgb.h.

◆ [] [1/2]

uint8_t { ... } ::red

Red channel value.

Definition at line 44 of file crgb.h.

◆ red [2/2]

uint8_t CRGB::red

Red channel value.

Definition at line 44 of file crgb.h.