将一张bmp图片,修改成德国国旗
#include <stdio.h>#include <string.h>#include <unistd.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <pthread.h>#include <semaphore.h>#include <wait.h>#include <signal.h>#include <sys/socket.h>#include <arpa/inet.h>#include <sys/socket.h>#include <sys/ipc.h>#include <sys/sem.h>#include <semaphore.h>#include <sys/msg.h>#include <sys/shm.h>#include <sys/un.h>int main(int argc, const char *argv[]){FILE* fp=fopen("./STR.bmp","r");if(fp==NULL){perror("fpfopen");return 1;}int bmp_size=0;int chang=0;int kuang=0;fseek(fp,2,SEEK_SET);fread(&bmp_size,4,1,fp);printf("图片大小%d\n",bmp_size);fseek(fp,18,SEEK_SET);fread(&chang,4,1,fp);fread(&kuang,4,1,fp);printf("图片的像素信息%d * %d\n",chang,kuang);fclose(fp);unsigned char rgb[3]={26,224,242};unsigned char grb[3]={11,11,218};unsigned char brg[3]={0,0,0};fp=fopen("./STR.bmp","r+");fseek(fp,54,SEEK_SET);for(int i=0;i<chang;i++) {for(int j=0;j<295;j++){fwrite(rgb,3,1,fp);}}for(int i=0;i<chang;i++){for(int j=0;j<295;j++){fwrite(grb,3,1,fp);}}for(int i=0;i<chang;i++){for(int j=0;j<296;j++){fwrite(brg,3,1,fp);}}fclose(fp);return 0;}