所有人,今日作业:用fwrite 和 fseek功能,将一张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_w=0;int bmp_h=0;fseek(fp,18,SEEK_SET);fread(&bmp_w,4,1,fp);fread(&bmp_h,4,1,fp);printf("图像像素信息为: %d*%d\n",bmp_w,bmp_h);fclose(fp);FILE* fp2=fopen("./rising_freedom(复件).bmp","r+");fseek(fp2,54,SEEK_SET);unsigned char bgr1[3]={0,0,0};//blackunsigned char bgr2[3]={0,0,255};//redunsigned char bgr3[3]={0,255,255};//yellowfor(int j=0;j<bmp_h;j++){for(int i=0;i<bmp_w;i++){if(j>=0&&j<(bmp_h/3)){fwrite(bgr1,3,1,fp2);}if(j>=(bmp_h/3)&&j<(bmp_h/3*2)){fwrite(bgr2,3,1,fp2);}if(j>=(bmp_h/3*2)&&j<bmp_h){fwrite(bgr3,3,1,fp2);}} }fclose(fp2);return 0;
}