Super compressed bitmaps are kept compressed in memory. Only 24-bit, 8-bit grayscale, or 1-bit bitmaps can be kept super compressed. The memory requirements for super compressed bitmaps are greatly reduced compared to uncompressed bitmaps or RLE-compressed bitmaps. For more information on loading RLE compressed images, refer to Speeding up 1-bit Documents.The data access for super compressed bitmaps is usually slower, compared to uncompressed bitmaps. The compression used for 24-bit and 8-bit bitmaps is lossy, which means multiple changes to the bitmap can produce some visual loss.
The data access is usually slower for super compressed bitmaps, but there are situations in which the data access is faster than for uncompressed bitmaps. When dealing with very large bitmaps, the O/S might swap to disk the bitmap data. In this case, the access for uncompressed bitmaps can be a lot slower than for super compressed bitmaps.
Any application that deals with large bitmaps of tens or hundreds of MB should consider using super compressed bitmaps.
Super compressed bitmaps can be allocated or created using the following functions:
The following Load functions support loading super compressed bitmaps:
The LBitmapBase::ChangeCompression function can be used to super compress 1-bit, 8-bit, or 24-bit bitmaps, as well as, uncompress bitmaps and compress 1-bit bitmaps using RLE compression. To determine whether a bitmap is super compressed, use the LBitmapBase::IsSuperCompressed function.
To get information about a super compressed bitmap in memory, call the LMemoryFile::GetBitmapMemoryInfo function.