将一张bmp图片,修改成德国国旗
int main(int argc, const char *argv[])
{
FILE* fp=fopen("./tupian.bmp","r+");
fseek(fp,2,SEEK_SET);
int bmp_size=0;
fread(&bmp_size,4,1,fp);
printf("图片总大小为:%d\n",bmp_size);
int width=0;
int height=0;
fseek(fp,0x12,SEEK_SET);
fread(&width,4,1,fp);
fread(&height,4,1,fp);
printf("图片的像素信息为:%d * %d\n",width,height);
unsigned char black[3]={0,0,0};
unsigned char red[3]={0,0,255};
unsigned char yellow[3]={0,255,255};
fseek(fp,18,SEEK_SET);
fread(&width,4,1,fp);
fread(&height,4,1,fp);
int aa=(width/3)-(width%3);
fseek(fp,54,SEEK_SET);
for(int i=0;i<height;i++){
for(int j=0;j<aa;j++){
fwrite(red,3,1,fp);
}
}
for(int i=0;i<height;i++){
for(int j=0;j<aa;j++){
fwrite(yellow,3,1,fp);
}
}
for(int i=0;i<height;i++){
for(int j=0;j<width;j++){
fwrite(black,3,1,fp);
}
}
fclose(fp);
return 0;
}