混合器的存在是为了适应不同平台、不同需求下的不同像素格式。混合器有三种:agg::rgbaagg::rgba8agg::rgba16,都是用来指定颜色的,rgba每个通道储存为doublergba8unsigned charrgba16intlong int;混合器起到的作用就像Win32API里的RGBCOLORREF宏。

针对agg::rgba特别说明:每一个分量虽然使用double类型保存,但是实际上,取值区间是[0,1],agg::rgba8每一个分量的取值是[0,255]

头文件#include "agg_pixfmt_rgba.h"

类型定义

struct rgba8; //对,你没有看错,是结构,不是类……

基本成员函数

rgba8(unsigned r, unsigned g, unsigned b,unsigned a)

       无须解释了吧,最大255

clear(), no_color()

       四个通道全部清零,也就是变没色咯;

transparent()

       alpha清零,变透明;

opacity()

       返回透明度,用double表示;

gradient(agg::rgba8 &c, double k)

       颜色梯度,就是颜色变为从原先的颜色渐变为c,变化率为k

add(agg::rgba8 &c, unsinged cover)

       颜色叠加,叠加一个透明度为cover/255的颜色c

成员变量

 

r, g, b, a都是无符号整型;