Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <cstdlib>
- #include <cstring>
- using namespace std;
- int main()
- {
- int i;
- int R0;
- int G0;
- int B0;
- int R;
- int G;
- int B;
- FILE *fin;
- FILE *fout;
- fin = fopen("i23.bmp", "rb");
- fout = fopen("i23_enc.bmp", "wb");
- if (fin == NULL)
- {
- printf("Open file error.\n");
- exit(1);
- }
- int sth;
- for(int j=0; j<=54; j++)
- {
- fseek(fin, j, SEEK_SET); //seek set come back to begging of file
- sth = fgetc(fin);
- fputc(sth, fout);
- }
- fseek(fin, 1, SEEK_END);
- long int size = ftell(fin);
- fseek(fin, 55, SEEK_SET);
- R0 = fgetc(fin);
- fputc(R0, fout);
- fseek(fin, 56, SEEK_SET);
- G0 = fgetc(fin);
- fputc(G0, fout);
- fseek(fin, 57, SEEK_SET);
- B0 = fgetc(fin);
- fputc(R0, fout);
- cout<<"RGB enc: "<<R0<<" "<<G0<<" "<<B0;
- int r, g, b;
- i = 58;
- while(1)
- {
- if (i > size) break;
- fseek(fin, i, SEEK_SET);
- if(i%3==1)
- {
- r = fgetc(fin);
- R = R0 - r;
- R0 = r;
- fputc(R, fout);
- }
- if(i%3==2)
- {
- g = fgetc(fin);
- G = G0 - g;
- G0 = g;
- fputc(G, fout);
- }
- if(i%3==0)
- {
- b = fgetc(fin);
- B = B0 - b;
- B0 = b;
- fputc(B, fout);
- }
- i++;
- }
- fclose(fin);
- fclose(fout);
- fin = fopen("i23_enc.bmp", "rb");
- fout = fopen("i23_dec.bmp", "wb");
- if (fin == NULL) {
- printf("Cannot open file.\n");
- exit(1);
- }
- for(int j=0; j<=54; j++)
- {
- fseek(fin, j, SEEK_SET);
- sth = fgetc(fin);
- fputc(sth, fout);
- }
- fseek(fin, 1, SEEK_END);
- size = ftell(fin);
- fseek(fin, 55, SEEK_SET);
- R0 = fgetc(fin);
- fputc(R0, fout);
- fseek(fin, 56, SEEK_SET);
- G0 = fgetc(fin);
- fputc(G0, fout);
- fseek(fin, 57, SEEK_SET);
- B0 = fgetc(fin);
- fputc(R0, fout);
- cout<<endl<<"RGB dec: "<<R0<<" "<<G0<<" "<<B0;
- i = 58;
- while(1)
- {
- if (i > size) break;
- fseek(fin, i, SEEK_SET);
- if(i%3==1)
- {
- r = fgetc(fin);
- R = R0 - r;
- R0 = R;
- fputc(R, fout);
- }
- if(i%3==2)
- {
- g = fgetc(fin);
- G = G0 - g;
- G0 = G;
- fputc(G, fout);
- }
- if(i%3==0)
- {
- b = fgetc(fin);
- B = B0 - b;
- B0 = B;
- fputc(B, fout);
- }
- i++;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement