Partager via


À propos des fonctions DrawDib

[La fonctionnalité associée à cette page, DrawDib, est une fonctionnalité héritée. Elle a été remplacée par la classe MediaComposition. La classe MediaComposition a été optimisée pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise la classe MediaComposition au lieu de DrawDib, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Collectivement, les fonctions DrawDib sont similaires à la fonction StretchDIBits en ce qu’elles fournissent des fonctionnalités d’étirement et de tramage d’image. Toutefois, les fonctions DrawDib prennent en charge la décompression d’images, le streaming de données et un plus grand nombre de cartes graphiques.

Vous trouverez avantageux d’utiliser les fonctions DrawDib dans certaines circonstances. Néanmoins, StretchDIBits est plus diversifié que les fonctions DrawDib et doit être utilisé lorsque les fonctions DrawDib ne peuvent pas fournir les fonctionnalités souhaitées. La liste suivante décrit les facteurs à prendre en compte pour décider d’utiliser les fonctions DrawDib ou StretchDIBits.

  • Format des informations de tableau de couleur. Les fonctions DrawDib affichent des images qui utilisent le format DIB_RGB_COLORS pour leur tableau de couleurs. Si les images de votre magasin d’informations de table de couleurs avec le format DIB_PAL_COLORS ou DIB_PAL_INDICES , vous devez utiliser StretchDIBits pour les afficher.

  • Mode de transfert. Les fonctions DrawDib nécessitent que votre application utilise le mode de transfert SRCCOPY . Si votre application utilise StretchDIBits avec un mode de transfert autre que SRCCOPY, vous devez continuer à utiliser StretchDIBits. De même, si vous devez utiliser d’autres opérations raster dans votre application, telles qu’un XOR, utilisez StretchDIBits.

  • Qualité de la lecture vidéo et de l’animation. Vous pouvez utiliser les fonctions DrawDib pour les applications de diffusion en continu de données, telles que celles qui luent des clips vidéo et des séquences animées. Les fonctions DrawDib surpassent StretchDIBits en ce qu’elles fournissent des images de meilleure qualité et améliorent le mouvement pendant la lecture.

  • Cartes graphiques. Les fonctions DrawDib prennent en charge un plus grand nombre de cartes graphiques que StretchDIBits . Les fonctions DrawDib prennent en charge les adaptateurs de couleurs VGA qui fournissent des palettes de couleurs 16 utilisant la profondeur d’image 4 bits, les adaptateurs SVGA qui fournissent des palettes de couleurs 256 à l’aide de la profondeur d’image 8 bits et les adaptateurs d’affichage en couleurs vraies qui fournissent des milliers de couleurs à l’aide de profondeurs d’image 16 bits, 24 bits et 32 bits.

    Les fonctions DrawDib améliorent également la vitesse et la qualité de l’affichage des images sur les cartes graphiques avec des fonctionnalités plus limitées. Par exemple, lors de l’utilisation d’un adaptateur d’affichage 8 bits, DrawDib utilise efficacement les images en couleur réelle à 256 couleurs. Ils créent également des images 8 bits lors de l’utilisation d’adaptateurs d’affichage 4 bits.

  • Étirement de l’image. Comme StretchDIBits, les fonctions DrawDib utilisent des rectangles source et de destination pour contrôler la partie d’une image affichée. Vous pouvez rogner des parties indésirables d’une image ou étirer une image en faisant varier la position et la taille des rectangles source et de destination. Si un pilote d’affichage ne prend pas en charge l’étirement d’image, les fonctions DrawDib offrent des fonctionnalités d’étirement plus efficaces que StretchDIBits.

  • Images compressées. Les fonctions DrawDib dessinent n’importe quel format pour lequel vous disposez d’un décompresseur, y compris l’encodage de longueur d’exécution (RLE), Cinepak et 411 YUV. Windows inclut des décompresseurs RLE et Cinepak qui peuvent éventuellement être installés.

  • Le codec Indeo n’est plus pris en charge dans Windows.

DrawDib