RGB888的数组变成ARBG8888的数组
时间: 2023-10-05 20:10:17 浏览: 43
将RGB888的每个元素的值复制到ARGB8888的第2、3、4个元素,然后将第1个元素的值设为255即可。具体代码实现如下:
```python
rgb_array = [0x12, 0x34, 0x56] # RGB888数组
argb_array = [0] * 4 # ARGB8888数组
argb_array[0] = 0xff # A值设为255
argb_array[1:4] = rgb_array # R、G、B值复制
print(argb_array) # [255, 18, 52, 86]
```
这样就将RGB888的数组变成了ARGB8888的数组,其中A值为255,R、G、B值与原数组相同。
相关问题
使用stm32cubeide在stm32f746g disco上显示bmp图片
好的,我可以为您提供一些指导。下面是基本步骤:
1. 将BMP图像转换为C数组。您可以使用在线转换器或其他软件来实现。将转换后的C数组文件复制到您的工程目录中。
2. 在STM32CubeIDE中,创建一个新的STM32CubeMX项目并选择适当的板子(即stm32f746g disco)。然后打开"Pinout & Configuration"选项卡,配置LCD和SDRAM的引脚。您可以在STM32F746G-DISCO板子的官方手册中找到引脚配置信息。
3. 在"Project Manager"选项卡中,选择"MDK-ARM"作为工具链。然后生成代码并打开Keil uVision5。
4. 在Keil uVision5中,打开main.c文件并添加以下代码:
```c
#include "stm32746g_discovery_lcd.h"
#define ARBG8888_BYTE_PER_PIXEL 4
uint8_t *buffer; // 存放BMP图片的缓存
uint32_t size; // BMP图片字节数
uint32_t address = SDRAM_DEVICE_ADDR; // SDRAM的起始地址
int main(void)
{
// 初始化LCD和SDRAM
BSP_LCD_Init();
BSP_LCD_LayerDefaultInit(0, LCD_FB_START_ADDRESS);
BSP_LCD_SelectLayer(0);
BSP_LCD_Clear(LCD_COLOR_WHITE);
BSP_SDRAM_Init();
// 加载BMP图片
buffer = (uint8_t *)BMP_IMAGE_ADDRESS; // BMP图片C数组的地址
size = *(uint16_t *)(buffer + 2) + (ARBG8888_BYTE_PER_PIXEL * 1024); // 计算BMP图片字节数
BSP_SDRAM_WriteData(address, (uint32_t *)buffer, size/4); // 将BMP图片写入SDRAM
// 在LCD上显示BMP图片
BSP_LCD_DrawBitmap(0, 0, address, 480, 272);
while (1)
{
}
}
```
5. 将BMP图片C数组的地址替换为您自己的C数组地址。然后编译并下载代码到stm32f746g disco板子上。
6. 如果一切顺利,您将在LCD上看到BMP图像。
希望这可以帮助您实现在stm32f746g disco上显示BMP图片。如果您有任何疑问,请随时询问。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![mp4](https://img-home.csdnimg.cn/images/20210720083504.png)