大家帮我看看这个读写bmp文件程序哪里出问题了,谢谢啦

cindysyp cindysyp 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我的目的是想从一个bmp文件中读出数据,然后再写进另一文件中,但是好像在读、写图像数据块的时候出了问题,我不知道怎么改,调试不过去,请大虾帮帮忙,谢谢!!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//定义bmp文件结构
typedef struct tagBITMAPFILEHEADER{
unsigned short byType;
long bfSize;
unsigned short bfReserved1;
unsigned short bfReserved1;
unsigned long bfOffBits;
}BITMAPFILEHEADER;

typedef struct tagBIPMAPINFOHEADER{
unsigned long bfSize;
long biWidth;
long biHeight;
unsigned short biPlanes;
unsigned short biBitCount;
unsigned long biCompression;
unsigned long biSizeImage;
long biXPelsPerMeter;
long biYPelsPerMeter;
unsigned long biClrUsed;
unsigned long biClrImportant;
}BITMAPINFOHEADER;

typedef struct tagRGBQUAD{
unsigned char rgbBlue;
unsigned char rgbGreen;
unsigned char rgbRed;
unsigned char rgbReserved;
}RGBQUAD;

typedef struct tagBITMAPINFO{
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
}BITMAPINFO;
typedef unsigned char BYTE;


int main(void)
{
BITMAPINFO bmpInfo;
BITMAPFILEHEADER bmpHead;
FILE* fa,*fs;
char* file_app="1.bmp";//目的文件
char* file_source="lena.bmp";//源文件




if((fs=fopen(file_source,"rb"))==NULL)
{
fprintf(stdout,"can not open the source file\n");
exit(1);
}


if((fa=fopen(file_app,"wb"))==NULL)
{
fprintf(stdout,"can not open the append file\n");
exit(1);
}





fread(&bmpHead,sizeof(BITMAPFILEHEADER),1,fs);
fwrite(&bmpHead,sizeof(BITMAPFILEHEADER),1,fa);

fread(&bmpInfo,sizeof(BITMAPINFO),1,fs);
fwrite(&bmpInfo,sizeof(BITMAPINFO),1,fa);

long lfileSize=bmpHead.bfSize-bmpHead.bfOffBits;

BYTE temp[lfileSize];

fread(temp,sizeof(char),lfileSize,fs);
fwrite(temp,sizeof(char),lfileSize,fa);


return 0;


}

...全文

相关推荐

评论 16
收藏 已收藏
分享
返回顶部
cindysyp
C语言 70,039 成员 243,237 内容