F12 CTRK d 搜索
#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void _fread(const char* DestFile)
{
FILE* fpRead = fopen(DestFile,"rb");
BITMAPFILEHEADER bf;
BITMAPINFOHEADER bs;
fread(&bf,1,sizeof(bf),fpRead);
fread(&bs,1,sizeof(bs), fpRead);
printf(" bfType: %c%c\t\t--说明文件类型\n",bf.bfType% 256, bf.bfType/256);
printf(" bfSize: %d\t--说明该位图文件的大小,用字节为单位\n",bf.bfSize);
printf(" bfReserved1: %d\t\t--保留,必须设置为0\n", bf.bfReserved1);
printf(" bfReserved2: %d\t\t--保留,必须设置为0\n", bf.bfReserved2);
printf(" bfOffBits: %d\t\t--说明从文件头开始到实际的图像数据之间的字节偏移量\n", bf.bfOffBits);
printf(" 位图信息头:\n");
printf(" bfType: %d\t\tBITMAPINFOHEADER结构所需要的字数 \n", bs.biSize);
printf(" biWidth: %d\t\t--说明图像的宽度,用像素为单位\n", bs.biWidth);
printf(" biHeight: %d\t\t--说明像素高度,以像素为单位\n", bs.biHeight);
printf(" biPlanes: %d\t\t--为目标设备说明颜色平面数一般为1\n", bs.biPlanes);
printf(" biBitCount: %d\t\t--说明比特数/像素,其值为1、4、8、16、24或32\n", bs.biBitCount);
printf(" biCompression: %d\t--说明图像数据压缩的类型,取值范围\n", bs.biCompression);
printf(" biSizeImage: %d\t--说明图像的大小\n", bs.biSizeImage);
printf(" biXPelsPerMeter: %d\t--说明水平分辨率,用像素/米表示,有符号数\n", bs.biXPelsPerMeter);
printf(" biYPelsPerMeter: %d\t--说明垂直分辨率,用像素/米表示,有符号整数\n", bs.biYPelsPerMeter);
printf(" biClrUsed: %d\t\t--说明位图实际使用的彩色表中的颜色索引数\n", bs.biClrUsed);
printf(" biClrImportant: %d\t--说明对图像显示有重要影响的颜色索引的数目\n", bs.biClrImportant);
fclose(fpRead);
}
void main()
{
const char Dest[] = "C:\\Users\\mbdn\\Desktop\\test.bmp";
_fread(Dest);
getchar();
}
//void main(int argc,char* argv[])
//{
// getchar();
// _fread(argv[1]);
// getchar();
//}
#include <Windows.h>
#include <cstdio>
#include <cstdlib>
void _fread(FILE* fpRead, FILE* fp)
{
BITMAPFILEHEADER bf;
BITMAPINFOHEADER bs;
fread(&bf, 1, sizeof(bf), fpRead);
fread(&bs, 1, sizeof(bs), fpRead);
//fseek(fpRead, sizeof(BITMAPFILEHEADER), SEEK_END);
//int fileLen = ftell(fpRead);
////fseek(fpRead,sizeof(BITMAPFILEHEADER),SEEK_CUR);
//fseek(fpRead,0,SEEK_SET);
/*char* buffer = (char*)malloc(fileLen + 1 );
memset(buffer,0,fileLen+1);*/
/*bs.biHeight = 603;
bs.biWidth = 603;
bs.biSizeImage = 603 * 603 * 3;
bs.biXPelsPerMeter = 0;
bs.biYPelsPerMeter = 0;*/
bs.biHeight = 1008;
bs.biSizeImage =bs.biHeight * bs.biWidth * 3;
fwrite(&bf, 1, sizeof(bf), fp);
fwrite(&bs, 1, sizeof(bs), fp);
for (int j = 0; j < bs.biHeight; j++)
{
for (int i=0;i<bs.biWidth;i++)
{
if (j==i)
{
fputc(0x91, fp);
fputc(0xc5, fp);
fputc(0xEE, fp);
continue;
}
if (i+j==1008)
{
fputc(0x85, fp);
fputc(0xe6, fp);
fputc(0xEE, fp);
continue;
}
fputc(0xeb, fp);
fputc(0xeb, fp);
fputc(0xeb, fp);
}
}
fclose(fpRead);
fclose(fp);
//tagRGBQUAD;
}