Partilhar via


Sobre as funções DrawDib

[O recurso associado a esta página, DrawDib, é um recurso legado. Foi substituído pela classe MediaComposition . de classe MediaComposition foi otimizada para Windows 10 e Windows 11. A Microsoft recomenda enfaticamente que o novo código use de classe MediaComposition em vez de DrawDib, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Coletivamente, as funções DrawDib são semelhantes à função StretchDIBits na medida em que fornecem recursos de alongamento de imagem e pontilhamento. No entanto, as funções DrawDib suportam descompressão de imagem, streaming de dados e um maior número de adaptadores de vídeo.

Você achará benéfico usar as funções DrawDib em algumas circunstâncias. Ainda assim, StretchDIBits é mais diverso do que as funções DrawDib e deve ser usado quando as funções DrawDib não podem fornecer a funcionalidade desejada. A lista a seguir descreve os fatores a serem considerados ao decidir se deseja usar as funções DrawDib ou StretchDIBits.

  • Formato de informações da tabela de cores. As funções DrawDib exibem imagens que usam o formato DIB_RGB_COLORS para sua tabela de cores. Se as imagens em seu aplicativo armazenarem informações da tabela de cores com o formato DIB_PAL_COLORS ou DIB_PAL_INDICES, você deverá usar StretchDIBits para exibi-las.

  • Modo de transferência. As funções DrawDib exigem que a sua aplicação use o modo de transferência SRCCOPY. Se o seu aplicativo usa StretchDIBits com um modo de transferência diferente de SRCCOPY, você deve continuar a usar StretchDIBits. Da mesma forma, se você precisar usar outras operações raster em seu aplicativo, como um XOR, use StretchDIBits.

  • Qualidade de reprodução de vídeo e animação. Você pode usar as funções DrawDib para aplicativos de streaming de dados, como aqueles que reproduzem clipes de vídeo e sequências animadas. As funções DrawDib superam StretchDIBits na medida em que fornecem imagens de maior qualidade e melhoram o movimento durante a reprodução.

  • Adaptadores de vídeo. As funções DrawDib suportam um número maior de adaptadores de vídeo do que StretchDIBits suporta. As funções DrawDib suportam adaptadores de cores VGA que fornecem paletas de 16 cores usando profundidade de imagem de 4 bits, adaptadores SVGA que fornecem paletas de 256 cores usando profundidade de imagem de 8 bits e adaptadores de vídeo true-color que fornecem milhares de cores usando profundidades de imagem de 16 bits, 24 bits e 32 bits.

    As funções DrawDib também melhoram a velocidade e a qualidade da exibição de imagens em adaptadores de vídeo com recursos mais limitados. Por exemplo, ao usar um adaptador de vídeo de 8 bits, o DrawDib funciona eficientemente dither imagens true-color para 256 cores. Eles também espalham imagens de 8 bits ao utilizar adaptadores de vídeo de 4 bits.

  • Estiramento de imagem Como StretchDIBits, as funções DrawDib usam retângulos de origem e destino para controlar a parte de uma imagem que é exibida. Você pode cortar partes indesejadas de uma imagem ou esticá-la variando a posição e o tamanho dos retângulos de origem e destino. Se um driver de vídeo não suportar alongamento de imagem, as funções DrawDib fornecem recursos de alongamento mais eficientes do que StretchDIBits.

  • Imagens comprimidas. As funções DrawDib desenharão qualquer formato para o qual tenha um descompressor, incluindo codificação por comprimento de execução (RLE), Cinepak e 411 YUV. O Windows inclui descompressores RLE e Cinepak que podem ser instalados opcionalmente.

  • O codec Indeo não é mais suportado no Windows.

DrawDib