C
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 C Downloads
#include <C_CkBinData.h>
#include <C_CkCompression.h>
#include <C_CkByteData.h>
void ChilkatSample(void)
{
BOOL success;
HCkBinData binData;
int i;
HCkCompression compress;
HCkByteData uncompressedBytes;
const char *compressedBase64;
const char *compressedHex;
HCkBinData 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 = CkBinData_Create();
for (i = 1; i <= 16; i++) {
CkBinData_AppendEncoded(binData,"000102030405060708090A0B0C0D0E0F","hex");
}
compress = CkCompression_Create();
CkCompression_putAlgorithm(compress,"deflate");
CkCompression_putEncodingMode(compress,"base64");
uncompressedBytes = CkByteData_Create();
success = CkBinData_GetBinary(binData,uncompressedBytes);
// Compress and return the compressed bytes in base64 format.
compressedBase64 = CkCompression_compressBytesENC(compress,uncompressedBytes);
printf("compressed and base64 encoded: %s\n",compressedBase64);
// Compress and return in hex format:
CkCompression_putEncodingMode(compress,"hex");
compressedHex = CkCompression_compressBytesENC(compress,uncompressedBytes);
printf("compressed and hex encoded: %s\n",compressedHex);
// Now decompress..
binData2 = CkBinData_Create();
// Decompress the base64..
CkCompression_putEncodingMode(compress,"base64");
success = CkCompression_DecompressBytesENC(compress,compressedBase64,uncompressedBytes);
CkBinData_AppendBinary(binData2,uncompressedBytes);
// Show the uncompressed bytes in hex format:
printf("%s\n",CkBinData_getEncoded(binData2,"hex"));
printf("--\n");
// Decompress the hex..
CkCompression_putEncodingMode(compress,"hex");
success = CkCompression_DecompressBytesENC(compress,compressedHex,uncompressedBytes);
CkBinData_Clear(binData2);
CkBinData_AppendBinary(binData2,uncompressedBytes);
// Show the uncompressed bytes in hex format:
printf("%s\n",CkBinData_getEncoded(binData2,"hex"));
printf("--\n");
CkBinData_Dispose(binData);
CkCompression_Dispose(compress);
CkByteData_Dispose(uncompressedBytes);
CkBinData_Dispose(binData2);
}