为了账号安全,请及时绑定邮箱和手机立即绑定

C++读取BMP图像

C++读取BMP图像

C++
沧海一幻觉 2019-03-22 15:14:56
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;
}



查看完整回答
反对 回复 2019-03-27
  • 4 回答
  • 0 关注
  • 512 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信