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;
}