想用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;
      }

}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
cfoundation
1楼-- · 2019-07-22 22:44
不行啊,那个tftlcd一直卡在THE picture is too large这个界面
cfoundation
2楼-- · 2019-07-23 01:12
战舰版本的flash只有512k,可能没办法显示,lz的真彩图片怎么显示的,可以借鉴一下源程序吗,谢谢
rjx007
3楼-- · 2019-07-23 03:54
 精彩回答 2  元偷偷看……
15017870038
4楼-- · 2019-07-23 05:09
czhaii 发表于 2018-2-25 18:59
先画一小块,显示函数加延时,便于观察显示位置与内容和运行变量是否吻合。
原来的帖子我的回复就是写汉字 ...

很赞。。。。。
cfoundation
5楼-- · 2019-07-23 07:00
 精彩回答 2  元偷偷看……
Dogsh
6楼-- · 2019-07-23 09:12
楼主大佬,求联系方式,您共享的音乐频谱程序下载出现bug了,跪求。

一周热门 更多>