Informazioni sulle funzioni DrawDib

[La funzionalità associata a questa pagina , DrawDib, è una funzionalità legacy. È stata sostituita dalla classe MediaComposition. La classe MediaComposition è stata ottimizzata per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi la classe MediaComposition anziché DrawDib, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Collettivamente, le funzioni DrawDib sono simili alla funzione StretchDIBits in quanto forniscono funzionalità di estensione e dithering delle immagini. Tuttavia, le funzioni DrawDib supportano la decompressione delle immagini, il flusso di dati e un numero maggiore di schede di visualizzazione.

È utile usare le funzioni DrawDib in alcune circostanze. StretchDIBits è comunque più diversificato rispetto alle funzioni DrawDib e deve essere usato quando le funzioni DrawDib non possono fornire la funzionalità desiderata. Nell'elenco seguente vengono descritti i fattori da considerare quando si decide se usare le funzioni DrawDib o StretchDIBits.

  • Formato delle informazioni sulla tabella dei colori. Le funzioni DrawDib visualizzano immagini che usano il formato DIB_RGB_COLORS per la tabella dei colori. Se le immagini dell'applicazione archiviano informazioni sulla tabella dei colori con il formato DIB_PAL_COLORS o DIB_PAL_INDICES , è necessario usare StretchDIBits per visualizzarle.

  • Modalità di trasferimento. Le funzioni DrawDib richiedono che l'applicazione usi la modalità di trasferimento SRCCOPY . Se l'applicazione usa StretchDIBits con una modalità di trasferimento diversa da SRCCOPY, è consigliabile continuare a usare StretchDIBits. Analogamente, se è necessario usare altre operazioni raster nell'applicazione, ad esempio XOR, usare StretchDIBits.

  • Qualità della riproduzione di video e animazione. È possibile usare le funzioni DrawDib per le applicazioni di streaming dei dati, ad esempio quelle che riproduceno clip video e sequenze animate. Le funzioni DrawDib superano le prestazioni di StretchDIBit in quanto forniscono immagini di qualità superiore e migliorano il movimento durante la riproduzione.

  • Adattatori di visualizzazione. Le funzioni DrawDib supportano un numero maggiore di schede di visualizzazione rispetto a StretchDIBits supportate. Le funzioni DrawDib supportano schede colore VGA che forniscono tavolozze a 16 colori tramite profondità dell'immagine a 4 bit, adattatori SVGA che forniscono tavolozze a 256 colori con profondità dell'immagine a 8 bit e schede di visualizzazione a colori reali che forniscono migliaia di colori usando profondità di immagine a 16 bit, a 24 bit e a 32 bit.

    Le funzioni DrawDib migliorano anche la velocità e la qualità della visualizzazione delle immagini nelle schede di visualizzazione con funzionalità più limitate. Ad esempio, quando si usa una scheda di visualizzazione a 8 bit, DrawDib esegue in modo efficiente la dithering delle immagini a colori reali a 256 colori. E anche le immagini a 8 bit quando si usano schede di visualizzazione a 4 bit.

  • Estensione dell'immagine. Analogamente a StretchDIBits, le funzioni DrawDib usano rettangoli di origine e di destinazione per controllare la parte di un'immagine visualizzata. È possibile ritagliare parti indesiderate di un'immagine o estendere un'immagine variando la posizione e le dimensioni dei rettangoli di origine e di destinazione. Se un driver di visualizzazione non supporta l'estensione delle immagini, le funzioni DrawDib offrono funzionalità di estensione più efficienti rispetto a StretchDIBits.

  • Immagini compresse. Le funzioni DrawDib disegnano qualsiasi formato per il quale si dispone di un decompressore, inclusa la codifica a lunghezza di esecuzione (RLE), Cinepak e 411 YUV. Windows include decompressori RLE e Cinepak che possono essere installati facoltativamente.

  • Il codec Indeo non è più supportato in Windows.

DrawDib