Here are some changes and implications resulting from adoption of the new storage system:
- There is no BITMAPINFOHEADER / AT_DIB struct maintained in a HIGEAR.
- Functions which formerly took a DIB header struct as a parameter have been modified to take a HIGDIBINFO handle (more info in the next section).
- DIB import and export support has been improved and expanded.
- Alpha and extra channels are stored together with color channels on a per-pixel basis.
- A new type is used for color space IDs (enumIGColorSpaceIDs) which contains information about color, alpha, and extra channels.
- New color spaces can be stored natively, such as LAB and YUV.
- CMYK is no longer a special case and is stored like any other color space.
- Channel depths can range from 1 to 32 bits, and there is no requirement that channels have equal depths - for example, 5-6-5 16-bit RGB can be stored.
- Rasters are stored internally from top to bottom. (DIB was bottom-up)
- RGB pixel data is stored internally in RGB order. (DIB used BGR order)
- 1-bit images are always stored internally in compressed format. They are compressed and decompressed as needed, for example during DIB import/export and pixel access.