Sample code for 30+ languages & platforms
Unicode C

Decompress Bytes

See more Compression Examples

Demonstrates how to decompress binary data.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkFileAccessW.h>
#include <C_CkByteData.h>
#include <C_CkCompressionW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkFileAccessW fac;
    HCkByteData compressedBytes;
    HCkCompressionW compress;
    HCkByteData decompressedBytes;

    success = FALSE;

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

    //  See this example to compress bytes: Compress Bytes

    fac = CkFileAccessW_Create();

    compressedBytes = CkByteData_Create();
    success = CkFileAccessW_ReadEntireFile(fac,L"qa_data/compressed/compressedBmp.dat",compressedBytes);
    if (CkFileAccessW_getLastMethodSuccess(fac) != TRUE) {
        wprintf(L"%s\n",CkFileAccessW_lastErrorText(fac));
        CkFileAccessW_Dispose(fac);
        CkByteData_Dispose(compressedBytes);
        return;
    }

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

    decompressedBytes = CkByteData_Create();
    success = CkCompressionW_DecompressBytes(compress,compressedBytes,decompressedBytes);
    if (CkCompressionW_getLastMethodSuccess(compress) != TRUE) {
        wprintf(L"%s\n",CkCompressionW_lastErrorText(compress));
        CkFileAccessW_Dispose(fac);
        CkByteData_Dispose(compressedBytes);
        CkCompressionW_Dispose(compress);
        CkByteData_Dispose(decompressedBytes);
        return;
    }

    success = CkFileAccessW_WriteEntireFile(fac,L"qa_output/decompressed.bmp",decompressedBytes);
    if (CkFileAccessW_getLastMethodSuccess(fac) != TRUE) {
        wprintf(L"%s\n",CkFileAccessW_lastErrorText(fac));
        CkFileAccessW_Dispose(fac);
        CkByteData_Dispose(compressedBytes);
        CkCompressionW_Dispose(compress);
        CkByteData_Dispose(decompressedBytes);
        return;
    }



    CkFileAccessW_Dispose(fac);
    CkByteData_Dispose(compressedBytes);
    CkCompressionW_Dispose(compress);
    CkByteData_Dispose(decompressedBytes);

    }