C++如何读取bmp图篇
intmain(){//charstrFile[LENGTH_NAME_BMP];//bmp文件名IMAGEDATA*imagedata=NULL;//动态分配存储原图片...
int main(){ //char strFile[LENGTH_NAME_BMP];//bmp文件名
IMAGEDATA *imagedata = NULL;//动态分配存储原图片的像素信息的二维数组
IMAGEDATA *imagedataRot = NULL;//动态分配存储旋转后的图片的像素信息的二维数组
int width,height;//图片的宽度和高度
//cout<<"请输入所要读取的文件名:"<<endl;
//cin>>strFile;
FILE *fpi;
//errno_t err;
err = fopen_s( &fpi, "D:\\a00.bmp", "rb" );
//fpi= fopen( "D:\\a00.bmp", "rb" );
if (err!=0)
cout<< "The file 'data' was not opened"<<endl ;
else
cout<< "The file 'data' was opened\n" <<endl;
////////////////////
if(fpi != NULL){
//先读取文件类型
WORD bfType;
fread(&bfType,1,sizeof(WORD),fpi);
if(0x4d42!=bfType)
{
cout<<"the file is not a bmp file!"<<endl;
return NULL;
}
cout<<bfType<<endl; //读取bmp文件的文件头和信息头
fread(&strHead,sizeof(tagBITMAPFILEHEADER),1,fpi);
showBmpHead(strHead);//显示文件头
fread(&strInfo,sizeof(tagBITMAPINFOHEADER),1,fpi);
showBmpInforHead(strInfo);//显示文件信息头
}
书上说的保留字1,和保留字2,都应该是0 啊,为啥我的不是?
图片的长宽是1300*768. , 程序显示高时1572865了,,求高手指点 展开
IMAGEDATA *imagedata = NULL;//动态分配存储原图片的像素信息的二维数组
IMAGEDATA *imagedataRot = NULL;//动态分配存储旋转后的图片的像素信息的二维数组
int width,height;//图片的宽度和高度
//cout<<"请输入所要读取的文件名:"<<endl;
//cin>>strFile;
FILE *fpi;
//errno_t err;
err = fopen_s( &fpi, "D:\\a00.bmp", "rb" );
//fpi= fopen( "D:\\a00.bmp", "rb" );
if (err!=0)
cout<< "The file 'data' was not opened"<<endl ;
else
cout<< "The file 'data' was opened\n" <<endl;
////////////////////
if(fpi != NULL){
//先读取文件类型
WORD bfType;
fread(&bfType,1,sizeof(WORD),fpi);
if(0x4d42!=bfType)
{
cout<<"the file is not a bmp file!"<<endl;
return NULL;
}
cout<<bfType<<endl; //读取bmp文件的文件头和信息头
fread(&strHead,sizeof(tagBITMAPFILEHEADER),1,fpi);
showBmpHead(strHead);//显示文件头
fread(&strInfo,sizeof(tagBITMAPINFOHEADER),1,fpi);
showBmpInforHead(strInfo);//显示文件信息头
}
书上说的保留字1,和保留字2,都应该是0 啊,为啥我的不是?
图片的长宽是1300*768. , 程序显示高时1572865了,,求高手指点 展开
2个回答
2012-10-17
展开全部
读错位置了吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询