使用IMX6UL开发板控制RGB LCD显示图片

        之前我们讲解了如何使用RGB LCD显示点,线,面,以及矩形这些图形,还有字母等,以及可能在编写实验代码会遇到的问题,那么这一节我们就讲解如何使用IMX6UL在RGB LCD中显示图片

        首先画点函数是画图函数的基础,所以首先要编写出画点函数,但是在上一节例程中已经讲解了如何编写画点函数,所以这里就不过多的赘述,将上一节的代码放在这里

inline void lcd_drawpoint(unsigned short x,unsigned short y,unsigned int color)
{ 
  	*(unsigned int*)((unsigned int)tftlcd_dev.framebuffer + 
		             tftlcd_dev.pixsize * (tftlcd_dev.width * y+x))=color;
}

        画图函数一共有两种实现方法,第一种是通过数组检索的方式,第二种便是通过指针缩索引的方式,首先我们先从数组索引的方法来开始讲解画图函数,首先找到一张图片,来确定他的分辨率,分辨率一般和LCD屏幕大小,要相同 ,如果你上传的图片分辨率大小不一样,那就可以使用相关的软件进入裁剪,例如PS
        
        博主这里选取了一张长屏的图片,所以是宽600,高1024的形式竖着放在LCD显示屏上,那么将这张图片放到专门的图片取模软件中,目前常用的图片取模软件为Img2Lcd

        界面如上,首先就是先导图片,然后之前讲解过,我们的屏幕其实是ARGB也就是支持透明通道,这里可以选择32位真彩色,也可以选择24位真彩色,因为图片的取模软件其实是不会将A这个透明通道加入进去,它的A那一位都是为0,所以取24位真彩色的大小也是可以的,在旁边设置好过后就点击上方的重新载入,然后点击保存

        然后就会生成一个字模数组的.c文件,它的数组大小是[2457600],表示每一个元素都是unsigned char的形式,也就是占用一个字节(8位)的内存空间,整个数组相当于要占用2457600个unsigned char,也就是2457600字节(B),2457600字节约等于2400kb,也就是2.3MB,1kb=1024b
        其次就是这个2457600是如何计算出来的,屏幕的宽度为1024,高度为600,每个像素点为32位也就是四个字节(因为是ARGB,如果是RGB就是3个字节),8位等于一个字节,1024*600*4=2457600   

·        得到了一个图片的字模大小后,那么我们就需要将如此大的字模文件传递到我们的Vscode中,这里直接将文件的名字修改一下,变成picture.h然后通过FTP的文件传输方式下。将文件传输到我们的LCD_API函数中,这样才可以通过画点函数来对图的显示进行比较
        

      &nb

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值