關於 DrawDib 函式
[與此頁面相關聯的功能,DrawDib是舊版功能。 MediaComposition 類別已取代它。 MediaComposition 類別 已針對 Windows 10 和 Windows 11 優化。 Microsoft強烈建議新程式代碼盡可能使用 MediaComposition 類別,而不是 DrawDib。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
總的說來,DrawDib 函式類似於 StretchDIBits 函式,因為它們提供影像縮放和抖動功能。 不過,DrawDib 函式支援影像解壓縮、數據串流和較多的顯示配接器。
在某些情況下,您會發現使用 DrawDib 函式會很有幫助。 不過,StretchDIBits 比 DrawDib 函式更多樣化,而且當 DrawDib 函式無法提供所需的功能時,應該使用。 下列清單描述決定要使用 DrawDib 函式或 StretchDIBits時要考慮的因素。
色彩表格資訊格式。 DrawDib 函式會顯示影像,這些影像會使用 DIB_RGB_COLORS 格式作為其色彩表格。 如果您的應用程式色彩表資訊中具有 DIB_PAL_COLORS 或 DIB_PAL_INDICES 格式的影像,您必須使用 StretchDIBits 來顯示它們。
傳輸模式。 DrawDib 函式需要您的應用程式使用 SRCCOPY 傳輸模式。 如果您的應用程式使用 StretchDIBits 搭配 SRCCOPY以外的傳輸模式,您應該繼續使用 StretchDIBits。 同樣地,如果您需要在應用程式中使用其他點陣作業,例如 XOR,請使用 StretchDIBits。
影片和動畫播放的品質。 您可以將 DrawDib 函式用於資料串流應用程式,例如播放視訊剪輯和動畫序列的函式。 DrawDib 函式優於 StretchDIBits ,因為它們提供更高品質的影像,並在播放期間提升動態表現。
顯示配接器。 DrawDib 函式支援比 StretchDIBits 支援的顯示配接器數目還要多。 DrawDib 函式支援使用 4 位影像深度提供 16 色盤的 VGA 色彩配接器、使用 8 位影像深度提供 256 色盤的 SVGA 配接器,以及使用 16 位、24 位和 32 位影像深度提供數千種色彩的色彩顯示適配卡。
DrawDib 函式也會改善在功能較有限的顯示卡上顯示影像的速度和品質。 例如,使用8位顯示卡時,DrawDib 函式會有效地將真色圖像抖動至256種色彩。 當使用 4 位元顯示配接器時,它們也會對 8 位元影像進行抖動處理。
影像拉伸。 如同 StretchDIBits,DrawDib 函式會使用來源和目的地矩形來控制所顯示影像的部分。 您可以裁剪不想要的影像部分,或藉由改變來源和目的地矩形的位置和大小來延展影像。 如果顯示驅動程式不支援影像延展,DrawDib 函式會提供比 StretchDIBits更有效率的延展功能。
壓縮的影像。 DrawDib 函數會繪製任何具有解壓縮器的格式,包括運行長度編碼 (RLE)、Cinepak 和 411 YUV。 Windows 包含可選擇性安裝的 RLE 和 Cinepak 解壓縮程式。
Windows 不再支援 Indeo 編解碼器。
相關主題