C语言怎么读入一个bmp文件,并显示(一定要C语言,附代码)

来源:百度知道 编辑:UC知道 时间:2024/04/27 20:12:16

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <malloc.h>

#define WIDTHBYTES(i) ((i+31)/32*4)
//#pragma warning(disable: 4996)
int main()
{
BITMAPFILEHEADER bf; //BMP文件头结构体
BITMAPINFOHEADER bi; //BMP信息头结构体

FILE* fp; //指向文件的指针
RGBQUAD *ipRGB; //
DWORD LineByte,ImgSize;
DWORD NumColors;
long Width;
unsigned char * * Imgdata;
int i,j;
char fileName[256];

//打开文件
printf("please enter filename:");
scanf("%s",fileName);
fp=fopen(fileName,"rb");
if(fp == NULL){
printf("Open file error!");
exit(0);
}

//读取信息头、文件头
fread(&bf,sizeof(BITMAPFILEHEADER),1,fp); //把指针fp所指向的文件的头信息写入bf(地址)
fread(&bi,sizeof(BITMAPINFOHEADER),1,fp);

LineByte=(DWORD)WIDTHBYTES(bi