#include #include #include int main(int argc, char *argv[]) { FILE *fin,*fout,*iout,*fin1; typedef struct idx_st { int start; int size; int uncompressed_size; } idx_type; typedef struct header_st { int magic; int count; int header_size; int zero1; int index_start; int index_size; int img_start; int img_size; int string_start; int string_size; } header_type; if(argc>2) { puts("usage: extractbmp [encode]"); exit(1); } int encode=0; if(argc==2 && !strcmp(argv[1],"encode")) encode=1; fin=fopen("Image.img","rb"); header_type header; fread(&header,4,10,fin); idx_type index[header.count]; char fname[256]; fread(index, sizeof(idx_type), header.count, fin); printf("%d bitmaps\n", header.count); int outpos=0; if(encode) { iout=fopen("Image1.img","wb"); fwrite(&header,4,10,iout); fwrite(index, sizeof(idx_type), header.count, iout); outpos=sizeof(idx_type)*header.count+sizeof(header_type); } for(int i=0;i