Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void serialize(map<int, string> &encTable, const uint8_t *img, const int width, const int height, const vector<pair<int, int>> frqtable)
- {
- string bits = "";
- string code = "";
- for (int i = 0; i < width * height; i++)
- {
- bits += encTable[int(img[i])];
- }
- int paddingBits = 8 - (bits.size() % 8);
- ofstream outenc("image.enc"); //Creating file
- outenc << bitset<32>(width) << bitset<32>(height) << bitset<32>(255) << char(paddingBits);
- for (int i = 0; i < bits.size(); i++)
- {
- code += bits[i];
- if (code.size() % 8 == 0)
- {
- int codeSer = stoi(code, 0, 2);
- char cc = (char)codeSer;
- outenc << cc;
- code = "";
- }
- }
- for (int i = 0; i < paddingBits; i++)
- code += '0';
- int codeSer = stoi(code, 0, 2);
- char cc = (char)codeSer;
- outenc << cc;
- outenc.close();
- ofstream outfrq("image.frq");
- for (int i = 0; i < 256; i++)
- {
- outfrq <<uint32_t(frqtable[i].second);
- }
- outfrq.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement