## GimpRGB

GimpRGB —

## Synopsis

    struct      GimpRGB;
    enum        GimpRGBCompositeMode;
    void        gimp_rgb_set                    (GimpRGB *rgb,
                                                 gdouble red,
                                                 gdouble green,
                                                 gdouble blue);
    void        gimp_rgb_set_alpha              (GimpRGB *rgb,
                                                 gdouble alpha);
    void        gimp_rgb_set_uchar              (GimpRGB *rgb,
                                                 guchar red,
                                                 guchar green,
                                                 guchar blue);
    void        gimp_rgb_get_uchar              (const GimpRGB *rgb,
                                                 guchar *red,
                                                 guchar *green,
                                                 guchar *blue);
    void        gimp_rgb_add                    (GimpRGB *rgb1,
                                                 const GimpRGB *rgb2);
    void        gimp_rgb_subtract               (GimpRGB *rgb1,
                                                 const GimpRGB *rgb2);
    void        gimp_rgb_multiply               (GimpRGB *rgb1,
                                                 gdouble factor);
    gdouble     gimp_rgb_distance               (const GimpRGB *rgb1,
                                                 const GimpRGB *rgb2);
    gdouble     gimp_rgb_max                    (const GimpRGB *rgb);
    gdouble     gimp_rgb_min                    (const GimpRGB *rgb);
    void        gimp_rgb_clamp                  (GimpRGB *rgb);
    void        gimp_rgb_gamma                  (GimpRGB *rgb,
                                                 gdouble gamma);
    gdouble     gimp_rgb_intensity              (const GimpRGB *rgb);
    guchar      gimp_rgb_intensity_uchar        (const GimpRGB *rgb);
    void        gimp_rgb_composite              (GimpRGB *color1,
                                                 const GimpRGB *color2,
                                                 GimpRGBCompositeMode mode);
    void        gimp_rgba_set                   (GimpRGB *rgba,
                                                 gdouble red,
                                                 gdouble green,
                                                 gdouble blue,
                                                 gdouble alpha);
    void        gimp_rgba_set_uchar             (GimpRGB *rgba,
                                                 guchar red,
                                                 guchar green,
                                                 guchar blue,
                                                 guchar alpha);
    void        gimp_rgba_get_uchar             (const GimpRGB *rgba,
                                                 guchar *red,
                                                 guchar *green,
                                                 guchar *blue,
                                                 guchar *alpha);
    void        gimp_rgba_add                   (GimpRGB *rgba1,
                                                 const GimpRGB *rgba2);
    void        gimp_rgba_subtract              (GimpRGB *rgba1,
                                                 const GimpRGB *rgba2);
    void        gimp_rgba_multiply              (GimpRGB *rgba,
                                                 gdouble factor);
    gdouble     gimp_rgba_distance              (const GimpRGB *rgba1,
                                                 const GimpRGB *rgba2);
    #define     INTENSITY_RED
    #define     INTENSITY_GREEN
    #define     INTENSITY_BLUE
    #define     INTENSITY                       (r,g,b)

## Description

## Details

### struct GimpRGB

    struct GimpRGB {

      gdouble r, g, b, a;
    };

### enum GimpRGBCompositeMode

    typedef enum
    {
      GIMP_RGB_COMPOSITE_NONE = 0,
      GIMP_RGB_COMPOSITE_NORMAL,
      GIMP_RGB_COMPOSITE_BEHIND
    } GimpRGBCompositeMode;

### gimp_rgb_set ()

    void        gimp_rgb_set                    (GimpRGB *rgb,
                                                 gdouble red,
                                                 gdouble green,
                                                 gdouble blue);

`rgb` : |
`red` : |
`green` : |
`blue` : |

### gimp_rgb_set_alpha ()

    void        gimp_rgb_set_alpha              (GimpRGB *rgb,
                                                 gdouble alpha);

`rgb` : |
`alpha` : |

### gimp_rgb_set_uchar ()

    void        gimp_rgb_set_uchar              (GimpRGB *rgb,
                                                 guchar red,
                                                 guchar green,
                                                 guchar blue);

`rgb` : |
`red` : |
`green` : |
`blue` : |

### gimp_rgb_get_uchar ()

    void        gimp_rgb_get_uchar              (const GimpRGB *rgb,
                                                 guchar *red,
                                                 guchar *green,
                                                 guchar *blue);

`rgb` : |
`red` : |
`green` : |
`blue` : |

### gimp_rgb_add ()

    void        gimp_rgb_add                    (GimpRGB *rgb1,
                                                 const GimpRGB *rgb2);

`rgb1` : |
`rgb2` : |

### gimp_rgb_subtract ()

    void        gimp_rgb_subtract               (GimpRGB *rgb1,
                                                 const GimpRGB *rgb2);

`rgb1` : |
`rgb2` : |

### gimp_rgb_multiply ()

    void        gimp_rgb_multiply               (GimpRGB *rgb1,
                                                 gdouble factor);

`rgb1` : |
`factor` : |

### gimp_rgb_distance ()

    gdouble     gimp_rgb_distance               (const GimpRGB *rgb1,
                                                 const GimpRGB *rgb2);

`rgb1` : |
`rgb2` : |
Returns : |

### gimp_rgb_max ()

    gdouble     gimp_rgb_max                    (const GimpRGB *rgb);

`rgb` : |
Returns : |

### gimp_rgb_min ()

    gdouble     gimp_rgb_min                    (const GimpRGB *rgb);

`rgb` : |
Returns : |

### gimp_rgb_clamp ()

    void        gimp_rgb_clamp                  (GimpRGB *rgb);

`rgb` : |

### gimp_rgb_gamma ()

    void        gimp_rgb_gamma                  (GimpRGB *rgb,
                                                 gdouble gamma);

`rgb` : |
`gamma` : |

### gimp_rgb_intensity ()

    gdouble     gimp_rgb_intensity              (const GimpRGB *rgb);

`rgb` : |
Returns : |

### gimp_rgb_intensity_uchar ()

    guchar      gimp_rgb_intensity_uchar        (const GimpRGB *rgb);

`rgb` : |
Returns : |

### gimp_rgb_composite ()

    void        gimp_rgb_composite              (GimpRGB *color1,
                                                 const GimpRGB *color2,
                                                 GimpRGBCompositeMode mode);

`color1` : |
`color2` : |
`mode` : |

### gimp_rgba_set ()

    void        gimp_rgba_set                   (GimpRGB *rgba,
                                                 gdouble red,
                                                 gdouble green,
                                                 gdouble blue,
                                                 gdouble alpha);

`rgba` : |
`red` : |
`green` : |
`blue` : |
`alpha` : |

### gimp_rgba_set_uchar ()

    void        gimp_rgba_set_uchar             (GimpRGB *rgba,
                                                 guchar red,
                                                 guchar green,
                                                 guchar blue,
                                                 guchar alpha);

`rgba` : |
`red` : |
`green` : |
`blue` : |
`alpha` : |

### gimp_rgba_get_uchar ()

    void        gimp_rgba_get_uchar             (const GimpRGB *rgba,
                                                 guchar *red,
                                                 guchar *green,
                                                 guchar *blue,
                                                 guchar *alpha);

`rgba` : |
`red` : |
`green` : |
`blue` : |
`alpha` : |

### gimp_rgba_add ()

    void        gimp_rgba_add                   (GimpRGB *rgba1,
                                                 const GimpRGB *rgba2);

`rgba1` : |
`rgba2` : |

### gimp_rgba_subtract ()

    void        gimp_rgba_subtract              (GimpRGB *rgba1,
                                                 const GimpRGB *rgba2);

`rgba1` : |
`rgba2` : |

### gimp_rgba_multiply ()

    void        gimp_rgba_multiply              (GimpRGB *rgba,
                                                 gdouble factor);

`rgba` : |
`factor` : |

### gimp_rgba_distance ()

    gdouble     gimp_rgba_distance              (const GimpRGB *rgba1,
                                                 const GimpRGB *rgba2);

`rgba1` : |
`rgba2` : |
Returns : |

### INTENSITY_RED

    #define INTENSITY_RED   0.30

### INTENSITY_GREEN

    #define INTENSITY_GREEN 0.59

### INTENSITY_BLUE

    #define INTENSITY_BLUE  0.11

### INTENSITY()

    #define     INTENSITY(r,g,b)

`r` : |
`g` : |
`b` : |