Compartilhar via


Sobre as funções DrawDib

[O recurso associado a esta página, DrawDib, é um recurso herdado. Ele foi substituído pela classe MediaComposition. A classe MediaComposition foi otimizada para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use a 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 , pois fornecem recursos de alongamento de imagem e dithering. No entanto, as funções DrawDib dão suporte à descompactação de imagem, streaming de dados e um número maior de adaptadores de exibição.

Você achará útil usar as funções DrawDib em algumas circunstâncias. Ainda assim, StretchDIBits é mais diversificado 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 devem ser usadas 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 de 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 seu aplicativo use o modo de transferência SRCCOPY . Se 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 de varredura em seu aplicativo, como um XOR, use StretchDIBits.

  • Qualidade da 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 , pois fornecem imagens de maior qualidade e melhoram o movimento durante a reprodução.

  • Adaptadores de vídeo. As funções DrawDib dão suporte a um número maior de adaptadores de exibição do que o suporte do StretchDIBits . As funções DrawDib dão suporte a 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 exibição de cores verdadeiras 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 funcionalidades mais limitadas. Por exemplo, ao usar um adaptador de exibição de 8 bits, o DrawDib funciona com eficiência dither imagens de cor verdadeira para 256 cores. Eles também dither imagens de 8 bits ao usar adaptadores de vídeo de 4 bits.

  • Alongamento de imagem. Assim como StretchDIBits, as funções DrawDib usam retângulos de origem e destino para controlar a parte de uma imagem exibida. Você pode cortar partes indesejadas de uma imagem ou esticar uma imagem variando a posição e o tamanho dos retângulos de origem e destino. Se um driver de vídeo não der suporte ao alongamento de imagem, as funções DrawDib fornecerão recursos de alongamento mais eficientes do que StretchDIBits.

  • Imagens compactadas. As funções DrawDib desenharão qualquer formato para o qual você tenha um descompactador, incluindo A codificação de comprimento de execução (RLE), Cinepak e 411 YUV. O Windows inclui descompactadores RLE e Cinepak que podem ser instalados opcionalmente.

  • O codec Indeo não tem mais suporte no Windows.

DrawDib