bitmaps Device-Dependent
Les bitmaps dépendantes des appareils (DDB) sont décrites à l’aide d’une structure unique, la structure BITMAP . Les membres de cette structure spécifient la largeur et la hauteur d’une région rectangulaire, en pixels ; la largeur du tableau qui mappe les entrées de la palette d’appareils aux pixels ; et le format de couleur de l’appareil, en termes de plans de couleurs et de bits par pixel. Une application peut récupérer le format de couleur d’un appareil en appelant la fonction GetDeviceCaps et en spécifiant les constantes appropriées. Notez qu’une DDB ne contient pas de valeurs de couleur ; au lieu de cela, les couleurs sont dans un format dépendant de l’appareil. Pour plus d’informations, consultez Couleur dans les bitmaps. Étant donné que chaque appareil peut avoir son propre jeu de couleurs, une DDB créée pour un appareil peut ne pas s’afficher correctement sur un autre appareil.
Pour utiliser une DDB dans un contexte d’appareil, elle doit avoir la couleur organization de ce contexte d’appareil. Ainsi, une DDB est souvent appelée bitmap compatible et offre généralement de meilleures performances GDI qu’une DIB. Par exemple, pour créer une bitmap pour la mémoire vidéo, il est préférable d’utiliser une bitmap compatible avec le même format de couleur que l’affichage principal. Une fois en mémoire vidéo, le rendu de l’image bitmap et son affichage à l’écran sont beaucoup plus rapides qu’à partir d’une surface mémoire système ou directement à partir d’une DIB.
En plus de permettre de meilleures performances GDI, les bitmaps compatibles sont utilisées pour capturer des images (voir Capture d’une image ) et pour créer des bitmaps au moment de l’exécution pour les menus, consultez « Création de la bitmap » dans (voir Utilisation des menus ).
Pour transférer une bitmap entre des appareils avec des organization de couleurs différentes, utilisez GetDIBits pour convertir la bitmap compatible en DIB et appelez SetDIBits ou StretchDIBits pour afficher la DIB sur le deuxième appareil.
Il existe deux types de DDB : ignoré et nondiscardable. Une base de données DDB ignorée est une bitmap que le système ignore si la bitmap n’est pas sélectionnée dans un contrôleur de domaine et si la mémoire système est faible. La fonction CreateDiscardableBitmap crée des bitmaps pouvant être ignorées. Les fonctions CreateBitmap, CreateCompatibleBitmap et CreateBitmapIndirect créent des bitmaps nondiscardables.
Une application peut créer une DDB à partir d’une DIB en initialisant les structures requises et en appelant la fonction CreateDIBitmap . Spécifier CBM_INIT dans l’appel à CreateDIBitmap revient à appeler la fonction CreateCompatibleBitmap pour créer une DDB au format de l’appareil, puis à appeler la fonction SetDIBits pour traduire les bits DIB en DDB. Pour déterminer si un appareil prend en charge la fonction SetDIBits , appelez la fonction GetDeviceCaps , en spécifiant RC_DI_BITMAP comme indicateur RASTERCAPS.