[原创] TFT彩屏显示图片文字的一般方法

lemon1394   2022-9-25 21:31 楼主

想要在TFT彩屏上显示图片文字,需要克服几个问题:

 

1.获取图片的RGB数据,供TFT使用

       

        TFT彩屏一般需要的是图片的点阵数据,但是只有BMP格式的文件才有点阵信息,需要自行提取。常见的图片是JPG,用PS转一下吧。

        BMP图片常用的是RGB888格式,即每个像素用三个字节表示,想要提取需要了解一下BMP文件格式,可以用二进制方式读取文件,偏移到RGB数据的位置后,读取到RGB数据。

 

2.RGB数据格式与TFT屏需要的数据不符

       

        TFT需要的是RGB565的点阵信息,BMP一般是RGB888的模式,这时需要把RGB888转换到RGB565。

        转换方法就是取R的高5位,G的高6位,B的高5位,组合成一个新的2个字节,共16位来表示一个像素。

        其实可以用PS转换一下,再用二进制方式读一下RGB565的数据。

        这时你会发现显示的图片是上下,左右颠倒的。再调整。当然也可以调TFT的驱动,调了驱动,再显示文字又倒了。。。

        也可以自己转换,小屏还可以,240X320的屏,我转了一下,PC要6秒,单片机就算了。

 

3.可以使用一些网友分享的固件。

        

        这些固件可以显示文字,图片,可是只能用他们的固件,他们不更新,你用不了新固件。

        而且用人家的现成的,我啥也折腾不了,更不知道人家怎么实现的,想实现一个自己的效果,不知道改哪,也不能改,人家在固件里。

 

4.显示HZK16,ASC16,HZK32

 

        用framebuf是比较高效的,但是只能是默认的小字体,想用16X16的HZK16,格式不对。

        可以写个程序,按点阵信息扩展一个RGB565的framebuf,光编个程序就要想半天,调半天,关键转换效率肯定喜人。

 

5.总结:

        想要实现TFT屏上显示图片文字,在不用别的固件的情况,要踩很多坑,而且很多坑基本爬不出来。

        用别的人固件,也只能在某些屏上显示文字,能显示图片的更少。主要还是不灵活。

 

         关于TFT屏显示图片文字的其他方法,我还没有看到一个完美的方案,不知道大家是怎么解决这个问题的。

        

 

 

       

本帖最后由 lemon1394 于 2022-9-25 21:30 编辑

回复评论 (3)

只要能在上面画点,什么都好解决!

点赞  2022-9-26 06:28

习惯了就好了,一般都是第一次才会出现顺序问题或者换硬件了,后续使用基本就不会了,你要了解,设计重来都是不断的重组,第一次使用就是基础积累

在爱好的道路上不断前进,在生活的迷雾中播撒光引
点赞  2022-9-26 08:34
github搜一下fb-boost固件,满足已提出的所有要求
点赞  2023-2-27 10:49
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复