已有一个bmp图片用标准c获取其任意点(给定坐标)像素信息?

来源:百度知道 编辑:UC知道 时间:2024/06/16 05:34:42
要用标准c来写,对不起了各位兄弟。

/*
你还是听听高先生的建议吧,
前面我给你的回答除了使用了c++的‘
//’注释以外,使用纯C语言编写的。
你如果仅仅是想完你说的目的,
虽然一小段代码可以就完成但是却不太容易读懂 。
图像右下角坐标为(0,0)
*/

#include<stdio.h>
int main()
{
int width,height,x,y;
unsigned short bitCount;
int offbits;
int bitPerLine;
unsigned char data;
FILE* bmpfp = fopen("E:\\风景\\风景1.bmp","rb");
fseek(bmpfp,18,SEEK_SET);
fread(&width,sizeof(int),1,bmpfp);
fread(&height,sizeof(int),1,bmpfp);
printf("width : %d , height : %d\n",width,height);
fseek(bmpfp,2,SEEK_CUR);
fread(&bitCount,sizeof(bitCount),1,bmpfp);
fseek(bmpfp,10,SEEK_SET);
fread(&offbits,sizeof(int),1,bmpfp);

if(bitCount==24){
bitPerLine = ( (width*3)%4==0 ) ? width*3 : ( (width*3)/4 )*4 + 4;
while(1){
printf("请输出坐标:");
scanf("%d%d",&x,&y);
if(x&g