This union represents 4-component(RGBA) color value.

You can find more information in comments below.

union Color
        unsigned char R; // Red channel
        unsigned char G; // Green channel
        unsigned char B; // Blue channel
        unsigned char A; // Alpha/transparency channel
        unsigned char Red;
        unsigned char Green;
        unsigned char Blue;
        unsigned char Alpha;
    unsigned char Data[4]; // Channels

    unsigned char operator[](const int channel) const; // Get channel value
    unsigned char &operator[](const int channel); // Get channel value
    bool operator==(const Color &other) const; // Check if colors are equal
    bool operator!=(const Color &other) const; // Check if colors are not equal
    Color operator*(const Color &other) const; // Blend colors
    Color operator+(const Color &other) const; // Add(blCanvas mode) colors
    Color &operator*=(Color &other); // Blend colors in first one
    Color &operator+=(Color &other); // Add(blCanvas mode) colors and store result in first one

    unsigned char average() const; // Return average value over all channels except the last one(grayscale)

Following operator is also available.

std::wostream &operator<<(std::wostream &stream, const Color &a); // Output as source code
Namespace: nitisa
Include: Nitisa/Image/Color.h