uint8_t *-指向RGB图像地址的指针

问题描述 投票:0回答:1

我正在尝试使用此功能,以便在STM板的240x240 LCD上显示图像:void BSP_LCD_DrawRGBImage(uint16_t Xpos, uint16_t Ypos, uint16_t Xsize, uint16_t Ysize, uint8_t * pdata)

虽然XposYposXsizeYsize很明显,但我不知道如何处理最后一个参数uint8_t * pdataDocumentation说,它必须是指向RGB图像地址的指针。如何使用uint8_t *类型获取存储在闪存中的图像地址并在此功能中使用它?我应该做什么指针操作?如何创建指向文件的指针?

我正在使用的板是DISCO-F413ZH

c image pointers stm
1个回答
0
投票

像素数据为565格式(16位)。这意味着Rar是5位,G是6位,B是5位长。

如果您的图片可以这样定义

const unt16_t image[] = { /*a lots of numbers*/ };

然后为了避免编译器警告,您需要将此数组指针转换为uint8_t *

 BSP_LCD_DrawRGBImage(xpos, ypos, xsize, ysize, (uint8_t *)image);

STM家伙没有听说过const正确性或void *指针:)

编辑:

摘自OPs评论。您需要先将JPG文件转换为565 RGB文件。许多图形设计程序都可以做到这一点-例如GIMP。然后,您需要将其转换为C文件。 (您可以使用许多可用程序,例如https://www.segger.com/free-utilities/bin2c/

© www.soinside.com 2019 - 2024. All rights reserved.