混合器的存在是为了适应不同平台、不同需求下的不同像素格式。混合器有三种:agg::rgba,agg::rgba8和agg::rgba16,都是用来指定颜色的,rgba每个通道储存为double,rgba8为unsigned char,rgba16为int或long int;混合器起到的作用就像Win32API里的RGB和COLORREF宏。
针对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都是无符号整型;