gpt4 book ai didi

c - 从 24bpp 位图中获取每个像素的 RGB 值以在 C 中转换为 GBA 格式

转载 作者:行者123 更新时间:2023-12-03 08:15:52 25 4
gpt4 key购买 nike

我想从 .bmp 中读取每个像素的 RGB 值文件,所以我可以转换 bmp转换为适合 GBA (GameBoy Advance) 的格式。

我只需要获取每个像素的 RGB,然后将此信息写入文件。

我正在尝试使用 <windows.h>结构:

typedef struct
{
char signature[2];
unsigned int fileSize;
unsigned int reserved;
unsigned int offset;
}BmpHeader;

typedef struct
{
unsigned int headerSize;
unsigned int width;
unsigned int height;
unsigned short planeCount;
unsigned short bitDepth;
unsigned int compression;
unsigned int compressedImageSize;
unsigned int horizontalResolution;
unsigned int verticalResolution;
unsigned int numColors;
unsigned int importantColors;

}BmpImageInfo;

typedef struct
{
unsigned char blue;
unsigned char green;
unsigned char red;
unsigned char reserved;
}Rgb;

typedef struct
{
BmpHeader header;
BmpImageInfo info;
Rgb colors[256];
unsigned short image[1];
}BmpFile;

但我只需要 RGB 结构。假设我读了“in.bmp”:

FILE *inFile, *outFile;
inFile = fopen("C://in.bmp", "rb");

Rgb Palette[256];
for(i=0;i<256;i++)
{
fread(&Palette[i],sizeof(Rgb),1,inFile);
}

fclose(inFile);

这是正确的吗?如何只将 RGB 信息写入文件?

最佳答案

如果你在 Windows 上,你可以使用 LoadBitmap来自 win32 的函数

然后给定句柄将其转换为 DIB 位图并以这种方式获取像素

关于c - 从 24bpp 位图中获取每个像素的 RGB 值以在 C 中转换为 GBA 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1531268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com