Advertisement
Ta7a99

Untitled

Jun 6th, 2020
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.05 KB | None | 0 0
  1. void serialize(map<int, string> &encTable, const uint8_t *img, const int width, const int height, const vector<pair<int, int>> frqtable)
  2. {
  3.     string bits = "";
  4.     string code = "";
  5.     for (int i = 0; i < width * height; i++)
  6.     {
  7.         bits += encTable[int(img[i])];
  8.     }
  9.     int paddingBits = 8 - (bits.size() % 8);
  10.     ofstream outenc("image.enc"); //Creating file
  11.     outenc << bitset<32>(width) << bitset<32>(height) << bitset<32>(255) << char(paddingBits);
  12.     for (int i = 0; i < bits.size(); i++)
  13.     {
  14.         code += bits[i];
  15.         if (code.size() % 8 == 0)
  16.         {
  17.             int codeSer = stoi(code, 0, 2);
  18.             char cc = (char)codeSer;
  19.             outenc << cc;
  20.             code = "";
  21.         }
  22.     }
  23.     for (int i = 0; i < paddingBits; i++)
  24.         code += '0';
  25.     int codeSer = stoi(code, 0, 2);
  26.     char cc = (char)codeSer;
  27.     outenc << cc;
  28.     outenc.close();
  29.     ofstream outfrq("image.frq");
  30.     for (int i = 0; i < 256; i++)
  31.     {
  32.         outfrq <<uint32_t(frqtable[i].second);
  33.     }
  34.     outfrq.close();
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement