`
dream_people
  • 浏览: 59041 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

黑白位图

阅读更多

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#pragma pack (1)
typedef struct
{
unsigned char info[2]; //BM
unsigned int size; //
unsigned int reserve1; //0
unsigned int offset; //0x3E
unsigned int headerinfo; //0x28
unsigned int width; //
unsigned int height; //
unsigned short planes; //1
unsigned short bitpixel; //1
unsigned int compression; //0
unsigned int datasize; //
unsigned int hres; //0
unsigned int vres; //0
unsigned int colors; //0
unsigned int important; //0
unsigned int palette; //0
unsigned int bdata; //0xFFFFFF00
}BMPHEADER;

void mkbmp(int width,int height,char *data,int datasize)
{
BMPHEADER header;
FILE *fp = NULL;

memset(&header,0,sizeof(BMPHEADER));

header.info[0] = 'B';header.info[1] = 'M';
header.size = datasize + sizeof(header);
header.reserve1 = 0;
header.offset = 0x3E;
header.headerinfo = 0x28;
header.width = width;header.height = height;
header.planes = 1;header.bitpixel = 1;
header.compression = 0;
header.datasize = datasize;
header.hres = 0;header.vres = 0;
header.colors = 0;
header.important = 0;header.palette = 0;
header.bdata = 0xFFFFFF;

fp = fopen("bmp.bmp","wb");
fwrite(&header,sizeof(header),1,fp);
fwrite(data,datasize,1,fp);
fclose(fp);
}

void main()
{
BMPHEADER header;

FILE* fp;
char *buffer = "\xF0\0\0\0\x0F\0\0\0";
int width = 4,height = 2;
int bwidth = ((width + 7) / 8 + 3)/4 * 4;
int size =  bwidth * height;

mkbmp(width,height,buffer,size);

fp = fopen("f:\\1.bmp","rb");
fread((void*)&header,1,sizeof(BMPHEADER),fp);

printf("info=%c%c\n",header.info[0],header.info[1]);
printf("size=%d\n",header.size);
printf("reserve1=%d\n",header.reserve1);
printf("offset=%d\n",header.offset);
printf("headerinfo=%d\n",header.headerinfo);
printf("width=%d\n",header.width);
printf("height=%d\n",header.height);
printf("planes=%d\n",header.planes);
printf("compression=%d\n",header.compression);
printf("datasize=%d\n",header.datasize);
printf("hres=%d\n",header.hres);
printf("vres=%d\n",header.vres);
printf("colors=%d\n",header.colors);
printf("important=%d\n",header.important);
printf("palette=%d\n",header.palette);
printf("bdata=%x\n",header.bdata);


fclose(fp);
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics