Sample code for 30+ languages & platforms
Unicode C++

Compress Bytes to Base64 (or any other encoding)

See more Compression Examples

Compresses bytes to base64 or any other encoding. Also decompress to return the original.

Chilkat Unicode C++ Downloads

Unicode C++
#include <CkBinDataW.h>
#include <CkCompressionW.h>
#include <CkByteData.h>

void ChilkatSample(void)
    {
    bool success = false;

    //  This example assumes the Chilkat API to have been previously unlocked.
    //  See Global Unlock Sample for sample code.

    //  First create some binary data to compress.
    CkBinDataW binData;

    int i;
    for (i = 1; i <= 16; i++) {
        binData.AppendEncoded(L"000102030405060708090A0B0C0D0E0F",L"hex");
    }

    CkCompressionW compress;
    compress.put_Algorithm(L"deflate");
    compress.put_EncodingMode(L"base64");

    CkByteData uncompressedBytes;
    success = binData.GetBinary(uncompressedBytes);

    //  Compress and return the compressed bytes in base64 format.
    const wchar_t *compressedBase64 = compress.compressBytesENC(uncompressedBytes);
    wprintf(L"compressed and base64 encoded: %s\n",compressedBase64);

    //  Compress and return in hex format:
    compress.put_EncodingMode(L"hex");
    const wchar_t *compressedHex = compress.compressBytesENC(uncompressedBytes);
    wprintf(L"compressed and hex encoded: %s\n",compressedHex);

    //  Now decompress..
    CkBinDataW binData2;

    //  Decompress the base64..
    compress.put_EncodingMode(L"base64");
    success = compress.DecompressBytesENC(compressedBase64,uncompressedBytes);
    binData2.AppendBinary(uncompressedBytes);
    //  Show the uncompressed bytes in hex format:
    wprintf(L"%s\n",binData2.getEncoded(L"hex"));
    wprintf(L"--\n");

    //  Decompress the hex..
    compress.put_EncodingMode(L"hex");
    success = compress.DecompressBytesENC(compressedHex,uncompressedBytes);
    binData2.Clear();
    binData2.AppendBinary(uncompressedBytes);
    //  Show the uncompressed bytes in hex format:
    wprintf(L"%s\n",binData2.getEncoded(L"hex"));
    wprintf(L"--\n");
    }