blit函数原描述:

简单来说,blit就是把一张图片放到画布上,可以用这个函数在屏幕绘制你想要的图片,如果把中文看成图片,那么就可以利用此函数实现中文显示。
假设整个画布是用变量fb存储的。而需要绘制的图片已经编码好了并放在变量buf中。
一个像素2字节表示颜色,按我们平时书写的顺序依次存放每个像素就完成编码。
假定这个图片是32*32的,那么可以通过如下函数放置:
fbuf=framebuf.FrameBuffer(buf,32,32,framebuf.RGB565)
fb.blit(fbuf,x,y)
第一行表示将图片编码转为FrameBuffer格式,并规定宽高
第二行表示在x,y绘制图片,x,y是图片的左上角定位
就是这么简单。
接着让我们实现中文显示。
先确定需求,中文显示函数接收中文字符串,还有放置位置,字体颜色
这与普通的图片放置不同,字体线条可以设置颜色,其他地方需要留白透明化以显示背景,稍微有些复杂
blit的第4个参数接受1个int,该int代表颜色,假设
fb.blit(fbuf,x,y,1000)
fbuf里颜色值为1000的像素将被视作透明,不会绘制
但是,我们可能在多种背景下绘制中文,每个背景绘制中文都需要传入背景色,太麻烦了,不优雅,那有没有更好的方法?
blit第5个参数,中文叫调色板,可以来解决这个问题。
在取字模时,存储的位图是单色的,所以在转FrameBuffer格式时,如下:

最低0.47元/天 解锁文章
1426

被折叠的 条评论
为什么被折叠?



