clCompressImage(3dm) clCompressImage(3dm) NAME clCompressImage, clDecompressImage - Compress/Decompress a single image SYNOPSIS #include <dmedia/cl.h> int clCompressImage(int scheme, int width, int height, int format, float compressionRatio, void *frameBuffer, int *compressedBufferSizePtr, void *compressedBuffer) int clDecompressImage(int scheme, int width, int height, int format, int compressedBufferSize, void *compressedBuffer, void *frameBuffer) ARGUMENTS scheme The compression/decompression scheme to use. width The width of the image. height The height of the image. format The format of the original image to (de)compress : CL_FORMAT_BGR, CL_FORMAT_XBGR, CL_FORMAT_ABGR, CL_FORMAT_BGR332, CL_FORMAT_GRAYSCALE, CL_FORMAT_YCbCr, CL_FORMAT_YCbCr422, or CL_FORMAT_YCbCr422DC. compressionRatio The target compression ratio. The actual compression ratio depends on this value and the particular codec. A value of 0.0 indicates the default should be used. frameBuffer A pointer to the frame buffer. compressedBufferSizePtr A pointer to the size of the compressed data buffer in bytes. The value pointed to is overwritten by clCompressImage to return the actual size of the compressed data. compressedBufferSize The size of the compressed data in bytes. compressedBuffer A pointer to the compressed data buffer. DESCRIPTION clCompressImage compresses the image in frameBuffer and stores the result in compressedBuffer and the resulting size in compressedBufferSizePtr. clDecompressImage decompresses the data in compressedBuffer of size compressedBufferSize and stores the resulting image in frameBuffer. The values of the state parameters used with the other compression library calls have no effect on these routines, however their default values do. width, height, format, and compressionRatio are interpreted in the same manner as the corresponding state parameters, but are given as direct parameters so that they may be specified in the same call. RETURNS Each function returns SUCCESS, or a negative error code on failure. EXAMPLE /* Compress and decompress a 320 by 240 XBGR image with JPEG */ int frameIndex, compressedBufferSize, maxCompressedBufferSize; int *compressedBuffer, frameBuffer[320][240]; /* malloc a big enough buffer */ maxCompressedBufferSize = 320 * 240 * CL_BytesPerPixel(CL_FORMAT_XBGR) + clQueryMaxHeaderSize(CL_JPEG_SOFTWARE); compressedBuffer = (int *)malloc(maxCompressedBufferSize); /* Compress and decompress it */ clCompressImage(CL_JPEG_SOFTWARE, 320, 240, CL_FORMAT_XBGR, 15.0, frameBuffer, &compressedBufferSize, compressedBuffer); clDecompressImage(CL_JPEG_SOFTWARE, 320, 240, CL_FORMAT_XBGR, compressedBufferSize, compressedBuffer, frameBuffer); SEE ALSO CLintro(3dm) Page 2