#include #include #include #include #include using namespace Magick; FILE* stream; class CImage { public: int maxX; int maxY; int cRes; int **intensity; void saveImage(char*); void decompressImage(); void getInput(char*); CImage() { maxX = maxY = 0; intensity = NULL; cRes = 255; } ~CImage() { int i; for(i=0;i=0;k--) { if(c%2==1) input[j*8+k] = '1'; else input[j*8+k] = '0'; c/=2; } j++; } input[j*8] = '\0'; } void getACvalue(char* input, int& pos, int& n, int& p) { int a,len,i,j,k; int codeLen[16][11] = { 4 ,3 ,4 ,6 ,8 ,10,12,14,18,25,26, 0 ,5 ,8 ,10,13,16,22,23,24,25,26, 0 ,6 ,10,13,20,21,22,23,24,25,26, 0 ,7 ,11,14,20,21,22,23,24,25,26, 0 ,7 ,12,19,20,21,22,23,24,25,26, 0 ,8 ,12,19,20,21,22,23,24,25,26, 0 ,8 ,13,19,20,21,22,23,24,25,26, 0 ,9 ,13,19,20,21,22,23,24,25,26, 0 ,9 ,17,19,20,21,22,23,24,25,26, 0 ,10,18,19,20,21,22,23,24,25,26, 0 ,10,18,19,20,21,22,23,24,25,26, 0 ,10,18,19,20,21,22,23,24,25,26, 0 ,11,18,19,20,21,22,23,24,25,26, 0 ,12,18,19,20,21,22,23,24,25,26, 0 ,13,18,19,20,21,22,23,24,25,26, 12,17,18,19,20,21,22,23,24,25,26 }; char* code[16][11] = { "1010\0", "00\0", "01\0", "100\0", "1011\0", "11010\0", "111000\0", "1111000\0", "1111110110\0", "1111111110000010\0", "1111111110000011\0", "\0","1100\0","111001\0","1111001\0","111110110\0","11111110110\0","1111111110000100\0","1111111110000101\0","1111111110000110\0","1111111110000111\0","1111111110001000\0", "\0","11011\0","11111000\0","1111110111\0","1111111110001001\0","1111111110001010\0","1111111110001011\0","1111111110001100\0","1111111110001101\0","1111111110001110\0","1111111110001111\0", "\0","111010\0","111110111\0","11111110111\0","1111111110010000\0","1111111110010001\0","1111111110010010\0","1111111110010011\0","1111111110010100\0","1111111110010101\0","1111111110010110\0", "\0","111011\0","1111111000\0","1111111110010111\0","1111111110011000\0","1111111110011001\0","1111111110011010\0","1111111110011011\0","1111111110011100\0","1111111110011101\0","1111111110011110\0", "\0","1111010\0","1111111001\0","1111111110011111\0","1111111110100000\0","1111111110100001\0","1111111110100010\0","1111111110100011\0","1111111110100100\0","1111111110100101\0","1111111110100110\0", "\0","1111011\0","11111111000\0","1111111110100111\0","1111111110101000\0","1111111110101001\0","1111111110101010\0","1111111110101011\0","1111111110101100\0","1111111110101101\0","1111111110101110\0", "\0","11111001\0","11111111001\0","1111111110101111\0","1111111110110000\0","1111111110110001\0","1111111110110010\0","1111111110110011\0","1111111110110100\0","1111111110110101\0","1111111110110110\0", "\0","11111010\0","111111111000000\0","1111111110110111\0","1111111110111000\0","1111111110111001\0","1111111110111010\0","1111111110111011\0","1111111110111100\0","1111111110111101\0","1111111110111110\0", "\0","111111000\0","1111111110111111\0","1111111111000000\0","1111111111000001\0","1111111111000010\0","1111111111000011\0","1111111111000100\0","1111111111000101\0","1111111111000110\0","1111111111000111\0", "\0","111111001\0","1111111111001000\0","1111111111001001\0","1111111111001010\0","1111111111001011\0","1111111111001100\0","1111111111001101\0","1111111111001110\0","1111111111001111\0","1111111111010000\0", "\0","111111010\0","1111111111010001\0","1111111111010010\0","1111111111010011\0","1111111111010100\0","1111111111010101\0","1111111111010110\0","1111111111010111\0","1111111111011000\0","1111111111011001\0", "\0","1111111010\0","1111111111011010\0","1111111111011011\0","1111111111011100\0","1111111111011101\0","1111111111011110\0","1111111111011111\0","1111111111100000\0","1111111111100001\0","1111111111100010\0", "\0","11111111010\0","1111111111100011\0","1111111111100100\0","1111111111100101\0","1111111111100110\0","1111111111100111\0","1111111111101000\0", "1111111111101001\0","1111111111101010\0","1111111111101011\0", "\0","111111110110\0","1111111111101100\0","1111111111101101\0","1111111111101110\0","1111111111101111\0","1111111111110000\0","1111111111110001\0","1111111111110010\0","1111111111110011\0","1111111111110100\0", "111111110111\0","1111111111110101\0","1111111111110110\0","1111111111110111\0","1111111111111000\0","1111111111111001\0","1111111111111010\0","1111111111111011\0","1111111111111100\0","1111111111111101\0","1111111111111110\0" }; for(k=0;k<16;k++) for(i=0;i<11;i++) { a = 1; len = strlen(code[k][i]); for(j=0;j>i; } end = 1; RL[rl++] = n; RL[rl++] = p; RLED(ZZ,RL); // cout<<"\n\n"; ZigZagD(QF,ZZ); QuantizeD(F,QF); //prn(QF); DCTD(f,F); for(i=0;i<8;i++) for(j=0;j<8;j++) intensity[ypos*8+i][xpos*8+j]=f[i][j]+128; xpos++; if(xpos==(maxX/8)) { xpos = 0; ypos++; } for(i=0;i<9;i++) { if(input[pos+i]=='0') end=0; } // cin>>i; } /* for(i=0;i>fname; strcat(fname,".Ajpg"); stream = fopen(fname, "rt"); cout<<"\n\nEnter name of output file (GIF file) : "; cin>>fname; i.decompressImage(); i.saveImage(fname); }