求用C++编一个程序,能在控制台上通过字符显示同文件夹下的.bmp位图每一个像素点

2025-04-07 19:12:37
推荐回答(3个)
回答1:

//读取文件的函数
int readBmp(char *bmpName)
{
FILE *fp=fopen(bmpName,"rb");//fp指向文件的开头

if(fp==NULL)
{
return 0;
}
else
{
fseek(fp, sizeof(BITMAPFILEHEADER),0); //以0为基准,偏移文件头个字节,fp指向此处,即信息头

BITMAPINFOHEADER head; //定义信息头结构变量

fread(&head, sizeof(BITMAPINFOHEADER), 1,fp); //head指向读取出的信息头

bmpWidth = head.biWidth; //图像的宽度

bmpHeight = head.biHeight; //图像的高度

biBitCount = head.biBitCount; //每像素的位数

int lineByte=(bmpWidth * biBitCount/8+3)/4*4;//定义变量,计算图像每行像素所占的字节数(必须是4的倍数)

//申请位图数据所需要的空间,读位图数据进内存
pBmpBuf=new char[lineByte * bmpHeight]; //图象数据指针,pBmpBuf指向实际的图象数据

fread(pBmpBuf,1,lineByte * bmpHeight,fp);

fclose(fp);//关闭文件

return 1;//读取文件成功
}
}

回答2:

boost filesystem
boost gil
不要用windows api

回答3:

楼主天大的吧 - -