Sample code for 30+ languages & platforms
C

Compress Bytes

See more Compression Examples

Demonstrates how to compress binary data.

Chilkat C Downloads

C
#include <C_CkFileAccess.h>
#include <C_CkByteData.h>
#include <C_CkCompression.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkFileAccess fac;
    HCkByteData fileBytes;
    HCkCompression compress;
    HCkByteData compressedBytes;

    success = FALSE;

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

    fac = CkFileAccess_Create();

    fileBytes = CkByteData_Create();
    success = CkFileAccess_ReadEntireFile(fac,"qa_data/bmp/big.bmp",fileBytes);
    if (CkFileAccess_getLastMethodSuccess(fac) != TRUE) {
        printf("%s\n",CkFileAccess_lastErrorText(fac));
        CkFileAccess_Dispose(fac);
        CkByteData_Dispose(fileBytes);
        return;
    }

    compress = CkCompression_Create();
    CkCompression_putAlgorithm(compress,"deflate");

    compressedBytes = CkByteData_Create();
    success = CkCompression_CompressBytes(compress,fileBytes,compressedBytes);
    if (CkCompression_getLastMethodSuccess(compress) != TRUE) {
        printf("%s\n",CkCompression_lastErrorText(compress));
        CkFileAccess_Dispose(fac);
        CkByteData_Dispose(fileBytes);
        CkCompression_Dispose(compress);
        CkByteData_Dispose(compressedBytes);
        return;
    }

    success = CkFileAccess_WriteEntireFile(fac,"qa_output/compressedBmp.dat",compressedBytes);
    if (CkFileAccess_getLastMethodSuccess(fac) != TRUE) {
        printf("%s\n",CkFileAccess_lastErrorText(fac));
        CkFileAccess_Dispose(fac);
        CkByteData_Dispose(fileBytes);
        CkCompression_Dispose(compress);
        CkByteData_Dispose(compressedBytes);
        return;
    }



    CkFileAccess_Dispose(fac);
    CkByteData_Dispose(fileBytes);
    CkCompression_Dispose(compress);
    CkByteData_Dispose(compressedBytes);

    }