弱弱地问一句,TFTLCD显示BMP图像时,假设图像是100*100像素,设定的宽度和高度是50*25,是怎么打点的,省略一些点不打吗
正点原子的这行代码有坛友研究吗,还望赐教
if(rgb==color_byte) //水平方向读取到1像素数数据后显示
{
if(x<picinfo.ImgWidth)
{
realx=(x*picinfo.Div_Fac)>>13;//x轴实际值
if(is_element_ok(realx,realy,1)&&yok)//符合条件
{
pic_phy.draw_point(realx+picinfo.S_XOFF,realy+picinfo.S_YOFF-1,color);//显示图片
}
}
x++;//x轴增加一个像素
color=0x00;
rgb=0;
}
countpix++;//像素累加
if(countpix>=rowlen)//水平方向像素值到了.换行
{
y--; //从下到上
if(y==0) break;
realy=(y*picinfo.Div_Fac)>>13;//实际y值改变
if(is_element_ok(realx,realy,0))yok=1;//此处不改变picinfo.staticx,y的值
else yok=0;
x=0;
countpix=0;
color=0x00;
rgb=0;
}
}
res=f_read(f_bmp,databuf,readlen,(UINT *)&br);//读出readlen个字节
if(br!=readlen)readlen=br; //最后一批数据
if(res||br==0)break; //读取出错
bmpbuf=databuf;
count=0;
}
|