Окт 16

Создание DIB-секции

Основные характеристики создаваемого растра задаются в структуре типа BITMAPINFO, адрес которой передается второму параметру функции. В этой структуре необходимо указать ширину, высоту, цветовую глубину и тип сжатия. DIB-секции поддерживают только тип BI_RGB, то есть только несжатые растры. Также задаются битовые маски, если они нужны, и цветовая таблица, если она используется.
Параметр iUsage определяет тип данных, содержащихся в массиве bmiColors, который является членом структуры BITMAPINFO. Если параметр iUsage имеет значение DIB_PAL_C0L0RS, то цветовая таблица bmiColors содержит индексы логической палитры. Значение DIB_RGB_C0L0RS указывает, что цветовая таблица содержит значения в формате RGB.
Параметр ppvBits содержит адрес переменной-указателя, в который GDI заносит адрес массива пикселов DIB-секции.
Параметр hSection может быть равен NULL. В этом случае GDI выделяет память под массив пикселов из виртуальной памяти приложения, а параметр dwOffset игнорируется. Если параметр hSection не равен NULL, то он должен быть дескриптором объекта файла, отображаемого на память, который был создан вызовом функции CreateFileMapping с флагами PAGE_READWRITE или PAGE_WRITECOPY. В этом случае размещение массива пикселов осуществляется в указанном файле со смещением, определяемым параметром dwOffset.