#!/usr/bin/env /friends/bin/cxxscript #include #include #include int main(int argc, char *argv[]) { FILE *fp; long InputFileSize; //MDB File Size unsigned char *pInput; //MDB Memory long OutputSize; //TIFF File Size unsigned char *pOutput; //TIFF Memory unsigned char TIFHead[26]; //TIFF head1 unsigned char TIFIFD[10][12]; //TIFF head2 unsigned char TIFrsv[8]; //TIFF head3 // File Siez Get struct stat statBuf; printf("Init"); stat(argv[1], &statBuf); InputFileSize = statBuf.st_size; printf("File Size = %d", InputFileSize); // File Read pInput=malloc(InputFileSize); fp = fopen(argv[1], "rb"); fread(pInput, InputFileSize, 1, fp); fclose(fp); // Init memset (TIFHead,0x00,sizeof(TIFHead)) ; memset (TIFIFD,0x00,sizeof(TIFIFD)) ; memset (TIFrsv,0x00,sizeof(TIFrsv)) ; //TIF Head Set TIFHead[0]=0x49; TIFHead[1]=0x49; TIFHead[2]=0x2A; //ID TIFF(42(0x2A)) TIFHead[4]=0x18; //Offset 24(0x18) TIFHead[8]=0xF0; // iResoX 1 240 TIFHead[12]=0x01; // iResoX 1 240 TIFHead[16]=0xF0; // iResoY 1 240 TIFHead[20]=0x01; // iResoY 1 240 TIFHead[24]=0x0A; TIFIFD[0][0]=0x00; TIFIFD[0][1]=0x01; TIFIFD[0][2]=0x03; TIFIFD[0][4]=0x01; TIFIFD[0][8]=pInput[185]; //0 X MDB TIFIFD[0][9]=pInput[184]; //0 X MDB TIFIFD[1][0]=0x01; TIFIFD[1][1]=0x01; TIFIFD[1][2]=0x03; TIFIFD[1][4]=0x01; TIFIFD[1][8]=pInput[187]; //1 Y MDB TIFIFD[1][9]=pInput[186]; //1 Y MDB TIFIFD[2][0]=0x03; TIFIFD[2][1]=0x01; TIFIFD[2][2]=0x03; TIFIFD[2][4]=0x01; TIFIFD[2][8]=0x04; //2 4(T6) TIFIFD[3][0]=0x06; TIFIFD[3][1]=0x01; TIFIFD[3][2]=0x03; TIFIFD[3][4]=0x01; TIFIFD[3][8]=0x00; //3 0 TIFIFD[4][0]=0x11; TIFIFD[4][1]=0x01; TIFIFD[4][2]=0x04; TIFIFD[4][4]=0x01; TIFIFD[4][8]=0x9A; //4 (154) TIFIFD[5][0]=0x16; TIFIFD[5][1]=0x01; TIFIFD[5][2]=0x04; TIFIFD[5][4]=0x01; TIFIFD[5][8]=pInput[187]; //5 Y MDB TIFIFD[5][9]=pInput[186]; //5 Y MDB TIFIFD[6][0]=0x17; TIFIFD[6][1]=0x01; TIFIFD[6][2]=0x04; TIFIFD[6][4]=0x01; unsigned char iSize[4]; long ImageSize; iSize[0]=pInput[147]; iSize[1]=pInput[146]; iSize[2]=pInput[145]; iSize[3]=pInput[144]; ImageSize=(long)iSize; printf("Image Size = %d", ImageSize); TIFIFD[6][8]=pInput[144]; //6 Size TIFIFD[6][9]=pInput[145]; //6 Size TIFIFD[6][10]=pInput[146]; //6 Size TIFIFD[6][11]=pInput[147]; //6 Size TIFIFD[7][0]=0x1A; TIFIFD[7][1]=0x01; TIFIFD[7][2]=0x05; TIFIFD[7][4]=0x01; TIFIFD[7][8]=0x08; //7 iResoX TIFIFD[8][0]=0x1B; TIFIFD[8][1]=0x01; TIFIFD[8][2]=0x05; TIFIFD[8][4]=0x01; TIFIFD[8][8]=0x10; //8 iRosoY TIFIFD[9][0]=0x28; TIFIFD[9][1]=0x01; TIFIFD[9][2]=0x03; TIFIFD[9][4]=0x01; TIFIFD[9][8]=0x02; //9 OutputSize=154+ImageSize-24; printf("TIFF FILE Size = %d", OutputSize); pOutput=malloc(OutputSize); memcpy((void *)pOutput,TIFHead,sizeof(TIFHead)); memcpy((void *)(pOutput+sizeof(TIFHead)),TIFIFD,sizeof(TIFIFD)); memcpy((void *)(pOutput+sizeof(TIFHead)+sizeof(TIFIFD)),TIFrsv,sizeof(TIFrsv)); memcpy((void *)(pOutput+154),(void *)(pInput+188), ImageSize-24); fp = fopen(argv[2], "wb"); fread(pOutput, OutputSize, 1, fp); fclose(fp); free(pInput); free(pOutput); return 0; }