字库:
字库大多用在显示设备上,用来根据不同的编码方式(GB编码或者Unicode编码),显示出可识别出来的汉字或是字符串。
就是你要显示的字符与你输入的二进制数据的一个对应关系的表,收到哪个数据显示哪个字符而已。
LCD图像渲染
如果要使用LCD来显示一张图片, 那么首先要提取图片的二进制像素信息.
每张图片, 比如对于没有压缩的bmp图片, 里面存有二进制格式的像素数据.
假设图像的宽度是103, 高度是104 pix,
那么图片的分辨率就等于:
resolution = 103 * 104 = 10_712 pixels;
只需要这么多个像素点就能表示这张图片了.
单个像素是怎么显示的呢?
根据RGB三原色原理, 我们可以用RGB编码来确定一个像素点的颜色.
因此, RGB编码规定, 一个像素用 3 bytes 表示.
一个字节转换成十进制就是(0-255).
所以我们给每个像素点都存储3 bytes的RGB值.
那么如何把这些像素点的RGB值投放到LCD上呢?
我们之前提到过LCD屏幕是采用A-R-G-B编码的, 如果我们不需要透明度, 只要给LCD中[A]的位置, 赋值0x00就行了.
给LCD中R-G-B位置填充每一个像素点的数据, 比如是白色就填充 0xFF, FF, FF 。
该如何完成这个操作呢?
在Linux系统下, Everything is files.
我们可以在/dev目录下找到LCD的驱动文件, 比如/dev/fb0就是LCD的驱动文件.
使用C标准库fopen打开这个驱动,然后使用fwrite给LCD驱动写入数据就行了.
LCD的驱动接口本质上就是一个需要数据填充的文件, 你填充什么像素, 它就显示相对应的内容.