Функція GetDIBits

ФункціяGetDIBitsвитягує біти заданого сумісного точкового малюнка і копіює їх у буфер якDIB, використовуючи заданий формат.

[in] Дескриптор контексту пристрою.

[in] Дескриптор точкового малюнка. Це має бути сумісний точковий малюнок (DDB).

[in] Визначає перший рядок розгортки, що видобувається.

[in] Визначає кількість витоків розгортки.

[out] Вказівник на буфер, який приймає дані точкового малюнка. Якщо цей параметр NULL, функція переправляє розміри і формат точкового малюнка структуруBITMAPINFO, вказану параметромlpbi.

[in/out] Вказівник на структуруBITMAPINFO,яка визначає бажаний формат данихDIB.

[in] Визначає формат членаbmiColorsструктуриBITMAPINFO. Він має бути одним із значень, наведених нижче.

Якщо параметрlpvBits- не ПУСТО (NULL) і функція завершується успішно, значення, що повертається - число рядків розгортки, скопійованих з точкового малюнка.

Windows 95/98/Me:Якщо параметрlpvBits- ПУСТО (NULL), іGetDIBitsуспішно заповнює структуруBITMAPINFO, значення, що повертається - загальна кількість рядків розгортки в точковому малюнку.

Windows NT/2000/XP:Якщо параметрlpvBits- ПУСТО (NULL), іGetDIBitsуспішно заповнює структуруBITMAPINFO, значення, що повертається є ненульовим.

Якщо функція завершується з помилкою, величина значення, що повертається - нуль.

Windows NT/2000/XP:Щоб отримати додаткові відомості про помилку, зателефонуйтеGetLastError. Функція може мати наведене нижче значення.

Якщо потрібний формат дляDIBвідповідає його внутрішньомуформат, значенняRGBдля точкового малюнка копіюються. Якщо потрібний формат не відповідає внутрішньому формату, таблиця кольорів синтезується. Нижченаведена таблиця описує таблицю кольорів, що синтезується для кожного формату.

Якщо параметрlpvBits- правильний покажчик, перші шість членів структуриBITMAPINFOHEADERповинні бути ініціалізовані, щоб встановити розмір і форматDIB. Рядки розгортки повинні вирівнюватися по межі подвійного слова (DWORD), виключаючи точкові малюнки стислі методомRLE.

Ідучий знизу вгору (висхідний) апаратно-незалежний растровий формат (DIB) визначається за допомогою установки висоти позитивним числом, в той час як формат, що йде зверху вниз (низхідний)DIB, визначається установкою висоти негативним числом. Таблиця кольорів точкового малюнка повинна додаватися до кінця структуриBITMAPINFO.

Якщо параметрlpvBitsмає значення ПУСТО (NULL), функціяGetDIBitsперевіряє перший член першої структури, яку вказує параметрlpbi. Цей член повинен визначати розмір, в байтах, структуриBITMAPCOREHEADERабоBITMAPINFOHEADER. Функція використовує заданий розмір, щоб з'ясувати, як мають бути ініціалізовані інші члени.

Якщо параметрlpvBitsмає значення ПУСТО (NULL), а член підрахунку бітівBITMAPINFOініціалізований у нуль,GetDIBitsзаповнює структуруBITMAPINFOHEADERабоBITMAPCOREHEADERбез таблиці кольорів. Ця методика може бути використана для запиту атрибутів точкового малюнка.

Точковий малюнок, ідентифікований параметромhbmpне повинен бути обраний у контекст пристрою, коли програма викликає цю функцію.

Початок координат для форматуDIB, що йде знизу вгору - лівий нижній кут точкового малюнка; початок координат для форматуDIB, що йде зверху вниз, - лівий верхній кут.