gpt4 book ai didi

c - 获取BMP文件的像素值

转载 作者:太空狗 更新时间:2023-10-29 17:14:40 25 4
gpt4 key购买 nike

我有一个关于读取 bmp 图像的问题。如何获取 bmp 图像中的像素值(R、G、B 值)?谁能帮助我使用 C 编程语言?

最佳答案

注意:如果您的 BMP 有 alpha channel ,您可能需要为 alpha 值获取一个额外的字节。在这种情况下,图像将是 image[pixelcount][4],您将添加另一个 getc(streamIn) 行来保存第四个索引。我的 BMP 结果不需要那个。

 // super-simplified BMP read algorithm to pull out RGB data
// read image for coloring scheme
int image[1024][3]; // first number here is 1024 pixels in my image, 3 is for RGB values
FILE *streamIn;
streamIn = fopen("./mybitmap.bmp", "r");
if (streamIn == (FILE *)0){
printf("File opening error ocurred. Exiting program.\n");
exit(0);
}

int byte;
int count = 0;
for(i=0;i<54;i++) byte = getc(streamIn); // strip out BMP header

for(i=0;i<1024;i++){ // foreach pixel
image[i][2] = getc(streamIn); // use BMP 24bit with no alpha channel
image[i][1] = getc(streamIn); // BMP uses BGR but we want RGB, grab byte-by-byte
image[i][0] = getc(streamIn); // reverse-order array indexing fixes RGB issue...
printf("pixel %d : [%d,%d,%d]\n",i+1,image[i][0],image[i][1],image[i][2]);
}

fclose(streamIn);

~蝗虫

关于c - 获取BMP文件的像素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1968561/

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