GetDIBits, fonction (wingdi.h)
La fonction GetDIBits récupère les bits de la bitmap compatible spécifiée et les copie dans une mémoire tampon en tant que DIB en utilisant le format spécifié.
Syntaxe
int GetDIBits(
[in] HDC hdc,
[in] HBITMAP hbm,
[in] UINT start,
[in] UINT cLines,
[out] LPVOID lpvBits,
[in, out] LPBITMAPINFO lpbmi,
[in] UINT usage
);
Paramètres
[in] hdc
Handle pour le contexte de l’appareil.
[in] hbm
Handle de la bitmap. Il doit s’agir d’une bitmap compatible (DDB).
[in] start
Première ligne d’analyse à récupérer.
[in] cLines
Nombre de lignes d’analyse à récupérer.
[out] lpvBits
Pointeur vers une mémoire tampon pour recevoir les données bitmap. Si ce paramètre a la valeur NULL, la fonction transmet les dimensions et le format de la bitmap à la structure BITMAPINFO pointée par le paramètre lpbmi .
[in, out] lpbmi
Pointeur vers une structure BITMAPINFO qui spécifie le format souhaité pour les données DIB.
[in] usage
Format du membre bmiColors de la structure BITMAPINFO . Il doit s’agir de l’une des valeurs suivantes.
Valeur retournée
Si le paramètre lpvBits n’a pas la valeur NULL et que la fonction réussit, la valeur de retour correspond au nombre de lignes d’analyse copiées à partir de la bitmap.
Si le paramètre lpvBits a la valeur NULL et que GetDIBits remplit correctement la structure BITMAPINFO , la valeur de retour est différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro.
Cette fonction peut retourner la valeur suivante.
Code de retour | Description |
---|---|
|
Un ou plusieurs paramètres d’entrée ne sont pas valides. |
Remarques
Si le format demandé pour la DIB correspond à son format interne, les valeurs RVB de la bitmap sont copiées. Si le format demandé ne correspond pas au format interne, une table de couleurs est synthétisée. Le tableau suivant décrit la table de couleurs synthétisée pour chaque format.
Valeur | Signification |
---|---|
1_BPP | La table de couleurs se compose d’une entrée noire et d’une entrée blanche. |
4_BPP | La table de couleurs se compose d’un mélange de couleurs identique à la palette VGA standard. |
8_BPP | La table de couleurs se compose d’une combinaison générale de 256 couleurs définies par GDI. (Ces 256 couleurs sont incluses dans les 20 couleurs trouvées dans la palette logique par défaut.) |
24_BPP | Aucune table de couleurs n’est retournée. |
Si le paramètre lpvBits est un pointeur valide, les six premiers membres de la structure BITMAPINFOHEADER doivent être initialisés pour spécifier la taille et le format de la DIB. Les lignes d’analyse doivent être alignées sur un DWORD à l’exception des bitmaps compressées RLE.
Une DIB de bas en haut est spécifiée en définissant la hauteur sur un nombre positif, tandis qu’une DIB descendante est spécifiée en définissant la hauteur sur un nombre négatif. La table de couleurs bitmap sera ajoutée à la structure BITMAPINFO .
Si lpvBits a la valeur NULL, GetDIBits examine le premier membre de la première structure vers laquelle lpbi pointe. Ce membre doit spécifier la taille, en octets, d’une structure BITMAPCOREHEADER ou BITMAPINFOHEADER . La fonction utilise la taille spécifiée pour déterminer comment les membres restants doivent être initialisés.
Si lpvBits a la valeur NULL et que le membre du nombre de bits de BITMAPINFO est initialisé à zéro, GetDIBits remplit une structure BITMAPINFOHEADER ou BITMAPCOREHEADER sans la table de couleurs. Cette technique peut être utilisée pour interroger des attributs bitmap.
La bitmap identifiée par le paramètre hbmp ne doit pas être sélectionnée dans un contexte d’appareil lorsque l’application appelle cette fonction.
L’origine d’une DIB de bas en haut est le coin inférieur gauche de la bitmap ; l’origine d’un DIB du haut vers le bas est le coin supérieur gauche.
Exemples
Pour obtenir un exemple, consultez Capture d’une image.
Spécifications
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | wingdi.h (inclure Windows.h) |
Bibliothèque | Gdi32.lib |
DLL | Gdi32.dll |