在bmp文件中制作国旗
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
FILE* fp=fopen("./rising_freedom.bmp","r");
fseek(fp,2,SEEK_SET);
int bmp_size=0;
fread(&bmp_size,4,1,fp);
printf("图像的大小是%d个字节\n",bmp_size);
int bmp_high=0;
int bmp_width=0;
fseek(fp,18,SEEK_SET);
fread(&bmp_width,4,1,fp);
fread(&bmp_high,4,1,fp);
printf("图像的像素信息是:%d*%d\n",bmp_width,bmp_high);
fclose(fp);
fp=fopen("./rising_freedom.bmp","r+");
fseek(fp,54,SEEK_SET);
int i,j;
unsigned char bgr_1[3]={0,255,255}; //255--0-255 紫色 0--0--255 红色
unsigned char bgr_2[3]={0,0,255};
unsigned char bgr_3[3]={0,0,0};
for(i=0;i<501;i++)
{
for(j=0;j<bmp_high;j++)
{
fwrite(&bgr_1,3,1,fp);
}
}
for(i=501;i<1002;i++)
{
for(j=0;j<bmp_high;j++)
{
fwrite(&bgr_2,3,1,fp);
}
}
for(i=1002;i<1503;i++)
{
for(j=0;j<bmp_high;j++)
{
fwrite(&bgr_3,3,1,fp);
}
}
return 0;
}