ch4n9 发表于 2012-11-12 22:48:32

关于tft彩屏显示图片的问题

用彩屏显示图片,图片大小取模24*32时,
字模为const unsigned char code gImage_picture={...};
显示函数为
void picture_play(uint16 xStart,uint16 xEnd,uint16 yStart,uint16 yEnd)
{
      uint16 m;
      cs=0;
      TFT_SetRamAddr(xStart,xEnd-1,yStart,yEnd-1);
      rs=1;
      for(m=0;m<(1680/2);m++)
      {
                WriteDat(gImage_picture);
                WriteDat(gImage_picture);
      }
      cs=1;
}
主函数中
picture_play(24,48,24,60);
能正常显示图片。

而改成36*48时,
字模为const unsigned char code gImage_picture ={...};
显示函数
void picture_play(uint16 xStart,uint16 xEnd,uint16 yStart,uint16 yEnd)
{
      uint16 m;
      cs=0;
      TFT_SetRamAddr(xStart,xEnd-1,yStart,yEnd-1);
      rs=1;
      for(m=0;m<(3072/2);m++)
      {
                WriteDat(gImage_picture);
                WriteDat(gImage_picture);
      }
      cs=1;
}
主函数中同样扫描
picture_play(24,60,24,72);
显示的图片就变成乱码。
为什么会这样,求指导
PCB打样找华强 http://www.hqpcb.com 样板2天出货

liuchangyin 发表于 2012-11-12 22:52:06

36不是8的倍数吧?{:curse:}需要8的倍数才行

ch4n9 发表于 2012-11-12 23:10:50

liuchangyin 发表于 2012-11-12 22:52 static/image/common/back.gif
36不是8的倍数吧?需要8的倍数才行

可48*56也不行啊。。 128*160也不行啊。。{:dizzy:}

lcw_swust 发表于 2012-11-13 09:18:04

楼主的图片大小与数组大小是个什么关系?
24*32=768
1680/768=2.1875
36*48=1728
3072/1728=1.7777...
这两个比例都不对呀,一个像素点占几个字节?

ch4n9 发表于 2012-11-13 10:41:14

lcw_swust 发表于 2012-11-13 09:18 static/image/common/back.gif
楼主的图片大小与数组大小是个什么关系?
24*32=768
1680/768=2.1875


不怎么清楚。。刚学。显示图片那函数是有个例程里这样写的,然后那个数组是用imageLcd取的。。

lcw_swust 发表于 2012-11-13 10:52:33

ch4n9 发表于 2012-11-13 10:41 static/image/common/back.gif
不怎么清楚。。刚学。显示图片那函数是有个例程里这样写的,然后那个数组是用imageLcd取的。。 ...

这两个程序都是有问题的:
1.看样子,一个像素两字节,picture=24*35*2,图片大小应是24*35,不是24*32,
picture_play(24,48,24,60);应为:picture_play(24,24+24,24,24+35);
2.picture =32*48*2(或其它组合),图片大小应是32*48(或其它乘积相同的组合),不是36*48,
楼主将程序改为picture_play(24,24+32,24,24+48);试试看

ch4n9 发表于 2012-11-13 11:25:10

lcw_swust 发表于 2012-11-13 10:52 static/image/common/back.gif
这两个程序都是有问题的:
1.看样子,一个像素两字节,picture=24*35*2,图片大小应是24*35,不是2 ...

可以了。是不是取模后都要自己调整的?好像没有一个取模后的大小是对应我取模时设定的大小的

lcw_swust 发表于 2012-11-13 11:32:16

ch4n9 发表于 2012-11-13 11:25 static/image/common/back.gif
可以了。是不是取模后都要自己调整的?好像没有一个取模后的大小是对应我取模时设定的大小的 ...

注意看“帮助”里的“用法说明”里的“图像头数据结构”

ch4n9 发表于 2012-11-13 11:50:08

lcw_swust 发表于 2012-11-13 11:32 static/image/common/back.gif
注意看“帮助”里的“用法说明”里的“图像头数据结构”

可以了,会用了。非常感谢。
页: [1]
查看完整版本: 关于tft彩屏显示图片的问题