应用对象:tft(RGB565),分辨率240*240
渐变类型:同种色相,逐渐变淡(不是不同色相将渐变)
实现方式:保持需改变色相的RGB值(888)不变,其它通道值比例递增
伪代码如下:
while(i<sumLine) //sumStep是tft行数
{
RGB888ToRGB565(r1, g1, b1, &colorR565, &colorG565, &colorB565); //因为tft只能接受RGB565值,而对我们而言,RGB888容易获取和输入
colorFill = RGBassemble(colorR565, colorG565, colorB565); //RGB888三色组合为RGB565
fillLine(0, i, rowNum, i,colorFill); //对tft一行进行颜色填充
if(i>beginLine) //beginLine是指从哪一行开始变淡,这主要是考虑让颜色能相对细腻地改变
{ //保持需改变色相的RGB值(888)不变,其它通道值比例递增,如下的g1++,r1++
g1++; //对RGB888而言,每通道最大值是0xFF,不能超过该值
r1++;
}
i++;
}
Caution:
1、这是同种色相实现变淡,非不同色相间渐变;
2、这是不完善的实现方式,就是说玩玩(应用要求不大)还可以,实际用要结合其他方法。