Acerca de las funciones DrawDib

[La característica asociada a esta página, DrawDib, es una característica heredada. Se ha reemplazado por la clase MediaComposition. La clase MediaComposition se ha optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use la clase MediaComposition en lugar de DrawDib, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Colectivamente, las funciones DrawDib son similares a la función StretchDIBits en que proporcionan funcionalidades de extensión y dithering de imágenes. Sin embargo, las funciones DrawDib admiten la descompresión de imágenes, el streaming de datos y un mayor número de adaptadores de pantalla.

Le resultará beneficioso usar las funciones DrawDib en algunas circunstancias. Aun así, StretchDIBits es más diverso que las funciones DrawDib y se deben usar cuando las funciones DrawDib no pueden proporcionar la funcionalidad deseada. En la lista siguiente se describen los factores que se deben tener en cuenta al decidir si se deben usar las funciones DrawDib o StretchDIBits.

  • Formato de información de tabla de color. Las funciones DrawDib muestran imágenes que usan el formato DIB_RGB_COLORS para su tabla de colores. Si las imágenes de la aplicación almacenan información de tabla de colores con el formato DIB_PAL_COLORS o DIB_PAL_INDICES , debe usar StretchDIBits para mostrarlos.

  • Modo de transferencia. Las funciones DrawDib requieren que la aplicación use el modo de transferencia SRCCOPY . Si la aplicación usa StretchDIBits con un modo de transferencia distinto de SRCCOPY, debe seguir usando StretchDIBits. De forma similar, si necesita usar otras operaciones de trama en la aplicación, como XOR, use StretchDIBits.

  • Calidad de reproducción de vídeo y animación. Puede usar las funciones DrawDib para aplicaciones de streaming de datos, como las que reproducen clips de vídeo y secuencias animadas. Las funciones DrawDib superan el rendimiento de StretchDIBits en que proporcionan imágenes de mayor calidad y mejoran el movimiento durante la reproducción.

  • Adaptadores de pantalla. Las funciones DrawDib admiten un mayor número de adaptadores de pantalla de los que admite StretchDIBits . Las funciones DrawDib admiten adaptadores de color VGA que proporcionan paletas de 16 colores con profundidad de imagen de 4 bits, adaptadores SVGA que proporcionan paletas de 256 colores con profundidad de imagen de 8 bits y adaptadores de pantalla de color verdadero que proporcionan miles de colores con profundidades de imagen de 16 bits, 24 bits y 32 bits.

    Las funciones DrawDib también mejoran la velocidad y la calidad de mostrar imágenes en adaptadores de pantalla con funcionalidades más limitadas. Por ejemplo, cuando se usa un adaptador de pantalla de 8 bits, drawDib funciona eficazmente dither imágenes de color verdadero a 256 colores. También dither imágenes de 8 bits cuando se usan adaptadores de pantalla de 4 bits.

  • Extensión de imagen. Al igual que StretchDIBits, las funciones DrawDib usan rectángulos de origen y destino para controlar la parte de una imagen que se muestra. Puede recortar partes no deseadas de una imagen o estirar una imagen variando la posición y el tamaño de los rectángulos de origen y destino. Si un controlador de pantalla no admite la extensión de imágenes, las funciones DrawDib proporcionan funcionalidades de extensión más eficaces que StretchDIBits.

  • Imágenes comprimidas. Las funciones DrawDib dibujarán cualquier formato para el que tenga un descomprimor, incluida la codificación de longitud de ejecución (RLE), Cinepak y 411 YUV. Windows incluye descompresores RLE y Cinepak que se pueden instalar opcionalmente.

  • El códec Indeo ya no se admite en Windows.

DrawDib