Растровые изображения, пиктограммы и метафайлы, страница 15

Возвращаемое значение

int. Число скопированных строк развертки. В случае возникновения ошибки возвращаемое значение — 0.

Включаемый файл

wingdi.h

См. также

CreateDIBitmap, GetDIBits, GetSystemPaletteEntries

Пример

В следующем примере выполняется вывод аппаратно-независимого растрового изображения в клиентской области окна, как показано на рис. 13.14. Первоначально это растровое изображение является черно-белым. Когда пользователь выбирает пункт меню Test!, данные растрового изображения меняются таким образом, что два соседних черных пикселя (с нулевым значением байта в 16-цветном растровом изображении) заменяются комбинацией синего и черного пикселей.

SetDIBitsToDevice                        • Windows 98   • Windows 2000

Описание

Функция SetDIBitsToDevice позволяет вывести аппаратно-независимое растровое изображение на устройство, связанное с контекстом устройства назначения. Если данные цвета BITMAPINFO не обрабатываются отдельно для создания логической палитры, при выводе этого файла DIB в контекст устройства данные цвета будут потеряны. Например, при выводе на устройство VGA цвета 256-цветного растрового изображения будут отображены в 20 системных цветов, применяемых по умолчанию. Потребность в памяти для вывода изображения формата D1B можно уменьшить путем последовательного вывода горизонтальных полос, составляющих растровое изображение DIB, а не вывода всего изображения сразу. Обычно данные BITMAPINFO, на которые указывает параметр Ipbmi, находятся непосредственно перед пиксельными данными растрового изображения (на которые указывает параметр IpvBits) в том же блоке памяти. Обратите внимание, что начало координат для пиксельных данных DIB находится в левом нижнем углу. Данные размещаются сверху вниз относительно предусмотренного по умолчанию режима отображения ММ_ТЕХТ.

Синтаксис

int SetDIBitsToDevice( HDC hDC, int XDest, int YDest, DWORD dwWidth, DWORD dwHeight, int XSrc, hit YSrc, UINT uStartScan, UINT uScanLines, CONST VOID* IpvBits, CONST BITMAPINFO* Ipbmi, UINT uColorUse )

Параметры hDC

HDC. Контекст устройства.

XDest

int. Координата х левого верхнего угла прямоугольной области назначения (в логических единицах длины).

YDest

int. Координата у левого верхнего угла прямоугольной области назначения (в логических единицах длины).

dw Width

DWORD. Ширина изображения DIB (в логических единицах длины).

dwHeight

DWORD. Высота изображения DIB (в логических единицах длины).

XSrc

int. Координата дс левого нижнего угла изображения DIB (в логических единицах длины).

YSrc

int. Координата у левого нижнего угла изображения DIB (в логических единицах длины).

uStartScan

UINT. Начальная строка развертки в изображении DIB.

uScanLines

UINT. Число строк развертки изображения DIB, содержащихся в массиве, указанном параметром IpvBits.

IpvBits

CONST VOID*. Указатель на данные цвета изображения DIB, хранимые как массив байтов.

Ipbmi

CONST BITMAPINFO*. Указатель на структуру BITMAPINFO, которая содержит информацию об изображении DIB.

nColorUse

UINT. Указывает, содержит ли член А/ш'С0/ог$структурыВ1ТМАРШРО явные значения красного, зеленого и синего (RGB) или индексы палитры. Параметр uColorUse должен иметь одно из значений, перечисленных в табл. 13.19.

Таблица 13. 19. Значения параметра uColorUse функции SetDIBitsToDevice

Значение

Описание

DIB_PAL_COLORS

Таблица цветов состоит из массива 16-разрядных индексов в логической палитре контекста устройства, указанного параметром НОС.

DIB_RGB_COLORS

Таблица цветов содержит литеральные значения RGB.