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 <C_CkBinDataW.h>
#include <C_CkCompressionW.h>
#include <C_CkByteData.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkBinDataW binData;
    int i;
    HCkCompressionW compress;
    HCkByteData uncompressedBytes;
    const wchar_t *compressedBase64;
    const wchar_t *compressedHex;
    HCkBinDataW binData2;

    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.
    binData = CkBinDataW_Create();

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

    compress = CkCompressionW_Create();
    CkCompressionW_putAlgorithm(compress,L"deflate");
    CkCompressionW_putEncodingMode(compress,L"base64");

    uncompressedBytes = CkByteData_Create();
    success = CkBinDataW_GetBinary(binData,uncompressedBytes);

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

    //  Compress and return in hex format:
    CkCompressionW_putEncodingMode(compress,L"hex");
    compressedHex = CkCompressionW_compressBytesENC(compress,uncompressedBytes);
    wprintf(L"compressed and hex encoded: %s\n",compressedHex);

    //  Now decompress..
    binData2 = CkBinDataW_Create();

    //  Decompress the base64..
    CkCompressionW_putEncodingMode(compress,L"base64");
    success = CkCompressionW_DecompressBytesENC(compress,compressedBase64,uncompressedBytes);
    CkBinDataW_AppendBinary(binData2,uncompressedBytes);
    //  Show the uncompressed bytes in hex format:
    wprintf(L"%s\n",CkBinDataW_getEncoded(binData2,L"hex"));
    wprintf(L"--\n");

    //  Decompress the hex..
    CkCompressionW_putEncodingMode(compress,L"hex");
    success = CkCompressionW_DecompressBytesENC(compress,compressedHex,uncompressedBytes);
    CkBinDataW_Clear(binData2);
    CkBinDataW_AppendBinary(binData2,uncompressedBytes);
    //  Show the uncompressed bytes in hex format:
    wprintf(L"%s\n",CkBinDataW_getEncoded(binData2,L"hex"));
    wprintf(L"--\n");


    CkBinDataW_Dispose(binData);
    CkCompressionW_Dispose(compress);
    CkByteData_Dispose(uncompressedBytes);
    CkBinDataW_Dispose(binData2);

    }