想用TFTLCD显示一幅图片,但弄不出来,求指导。

2019-07-21 02:21发布

本帖最后由 rjx007 于 2018-2-23 15:48 编辑

想用TFTLCD显示一幅图片,看了原子等例程,觉得太复杂了,又是读SD卡,又是文件系统什么的,太难了,一下子学不会。我想从最简单的入手,因为只显示一幅简单图片,所以用软件(如Image2lcd)将图片转成点阵数组(像显示文字似的),再用一个图片显示函数显示出来,试了很多次都不成功,屏上是乱的。不知是取模不对还是函数用的不对,劳驾高手能指导一下。

下面取模对吗?图片函数如下: 又问:函数的形参 *pic 是Image2lcd生成的C文件,还是文件中的数组?如何传递这个形参呢?

//图像显示函数,适用Image2Lcd V2.9
void Picture_Draw(u16 S_x,u16 S_y,const unsigned char *pic)
{
   u32 i=8,len;
   u16 temp,x,y,D_x=0,D_y=0;

   x=(uint16_t)((pic[2]<<8)+pic[3])-1; //获取图片的宽度
   y=(uint16_t)((pic[4]<<8)+pic[5])-1; //获取图片的高度

   len=2*x*y; //获取图片像素点数

   while(i<(len+8))  //显示所有像素点
      {
         temp=(uint16_t)((pic<<8)+pic[i+1]);//image2lcd生成的是8位数组,十六位真彩 {MOD}图像生成为高8位和低8位,这儿将其转换成16位数据,
         if(D_x>x) {D_x=0;D_y++;}//逐行显示
         LCD_DrawFRONT_COLOR(S_x+D_x,S_y+D_y,temp); //画点,拼凑图像,调用快速画点函数
         D_x++;
         i=i+2;
      }

}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。