linux编程读取bmp图片像素,获取BMP文件的像素值

注意:如果BMP有alpha通道,可能需要为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);

~地点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值