LCD开发之L8图像格式详解

人不范二枉少年STM32 2023-10-29 19:05:23 7189阅读 举报


在进行LCD编程时,我们会常见的遇到RGB565,RGB888,L8等格式,RGB565,RGB888这种格式比较常用,今天我们重点介绍下L8这种格式。

与ARGB8888相比,L8格式的图像占用更少的闪存空间,绘制速度更快。

L8格式的图像由调色板和像素阵列组成:调色板最多列出256种不同的颜色,这些颜色以16位格式RGB565、24位格式RGB 888或32位格式ARGB8888指定。像素数组由每个像素的一个字节组成。这个字节是调色板(颜色列表)的索引,指出像素的颜色。TouchGFX框架通过逐个读取像素、查找调色板中的颜色并将其写入帧缓冲区来绘制L8图像。这将自动发生,并由STM32 Chrom-ART硬件加速器加速(如果硬件上可用)。

每像素8位意味着一个L8图像可以使用256种不同的颜色。另一个L8图像可以使用256种其他颜色,因为这两个图像都有各自的调色板。

4 x 4像素的L8图像和4种颜色的调色板

像素是每个字节(8位)。因此,像素的大小是宽度x高度字节。调色板颜色可以是16位、24位或32位颜色。因此,每个颜色定义将占用2、3或4个字节。

实体图像应存储在L8_RGB888中。如果图像是透明的,则必须使用32位格式(ARGB8888):

格式帧缓冲区格式支持透明像素DMA2D支持
L8_RGB565型16位RGB565
L8_RGB88824位RGB888是的
L8_ARGB8888两者是的是的

DMA2D不支持带有RGB565调色板的L8格式。这意味着以这种格式绘制图像并不是硬件加速的。因此,除非您在没有DMA2D的平台上(例如STM32G0或STM32F410),否则不应使用此格式。

如果使用串行闪存(非内存映射)存储图像和16位帧缓冲区(格式RGB565),则应使用L8_RGB565格式,因为颜色格式与帧缓冲区格式匹配,并且复制到帧缓冲区的速度更快。

下表显示了首选的L8格式:

帧缓冲区格式平台具有DMA2D不带DMA2D的平台
RGB565型L8_RGB888L8_RGB565型
RGB888型L8_RGB888L8_RGB888
ARGB8888型L8_RGB888L8_RGB888

透明图像应始终位于L8_ARGB8888中。

进一步阅读
  • 在此处阅读有关调色板图像格式的更多信息: https://en.wikipedia.org/wiki/Indexed_color网站
  • L8图像 ​

    这是一个典型的标志图像。此图像仅使用16种不同的颜色:

    200 x 200像素L8图像,16种不同的24位颜色。

    此图像的闪烁大小明显低于标准24位格式(RGB888)的原始图像。下表列出了三种不同调色板格式和非L8格式中此具体图像的flash用法

    格式像素大小(字节)调色板大小(字节)总大小(字节)减少(%)
    RGB888型120,000zero120,000-
    L8_RGB565型40,000thirty-two40,032sixty-six point six
    L8_RGB88840,000forty-eight40,048sixty-six point six
    L8_ARGB888840,000sixty-four40,064sixty-six point six

    我们看到,大小减少非常大,调色板的大小在中等大小的图像上是微不足道的。

    在TouchGFX Designer中使用L8图像 ​

    在TouchGFX中使用L8图像格式非常容易。唯一要做的就是配置Image Converter,将图像从PNG转换为L8格式。下面我们将介绍整个过程:

    在TouchGFX Designer中启动新项目。将图像复制到新项目中的assets/images文件夹:

    TouchGFX项目的图像文件夹

    现在转到TouchGFX Designer并单击“图像”选项卡并选择图像:

    TouchGFX Designer图像视图中的徽标

    在窗口的右侧,选择图像格式L8_RGB888(本例运行的是24位颜色)。

    现在可以在画布上插入图像小部件(此处我们在背景中插入了一个方框):

    TouchGFX Designer中画布上的图像小部件

    UI代码中无需更改任何内容。图像转换器转换PNG文件并生成L8格式的图像,因为我们在“图像”选项卡中进行了配置。

    透明图像 ​

    如上所述,对于具有透明度的图像,也可以使用L8格式。

    32位格式的170 x 60像素按钮图像ARGB8888

    上图使用了108种颜色(多种深浅的蓝色)。此图像可以使用格式L8_ARGB8888。尺寸将大大降低:

    标签: #LCD屏#

    版权声明:
    作者:人不范二枉少年
    链接:https://www.dianziwang.net/p/ec72e9434ed15.html
    来源:STM32
    文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以点击 “举报”


    登录 后发表评论
    0条评论
    还没有人评论过~