C++读取BMP图像
4 回答
翻阅古今
TA贡献1780条经验 获得超5个赞
数据在黑屏下显示数据量会很大,故存为dat文件;
#include <windows.h>
#include <stdio.h>
/*
输入的指令必须如下格式: command xx.bmp width height
command 编译之后的程序名称
xx.bmp 需要获取像素值的bmp文件名,需输入扩展名
width,height bmp文件的大小
*/
int main(int argc,char* argv[])
{
int x,y,i;
unsigned char *px;
HBITMAP map;
FILE* pout;
x=atoi(argv[2]);//得到bmp文件的大小信息
y=atoi(argv[3]);
px=new unsigned char[x*y];
map=(HBITMAP)LoadImage(NULL,argv[1],IMAGE_BITMAP,x,y,LR_LOADFROMFILE);//装载bmp文件
GetBitmapBits(map,x*y,px);//获取像素值信息
pout=fopen("pixeldata.dat","wb");
for(i=0;i<x*y;i++)
{
if((i%4)!=3)//因为bmp文件为每个像素分配了4Byte的空间,分别为R,G,B,保留,估输出时不写出第四个Byte的值(必为0)
fwrite(&px[i],sizeof(unsigned char),1,pout);
}
fclose(pout);
return 0;
}
- 4 回答
- 0 关注
- 512 浏览
添加回答
举报
0/150
提交
取消