共用方式為


Device-Dependent 位陣圖

裝置相依點陣圖 (DDB) 是使用單一結構來描述,BITMAP 結構。 這個結構的成員會以像素為單位指定矩形區域的寬度和高度;將專案從裝置調色盤對應至像素的數位寬度;和裝置的色彩格式,就每圖元的色彩平面和位而言。 應用程式可以呼叫 getDeviceCaps 函式並指定適當的常數,以擷取裝置的色彩格式。 請注意,DDB 不包含色彩值;相反地,色彩會以裝置相依的格式。 如需詳細資訊,請參閱點陣圖中的 色彩。 由於每個裝置可以有自己的一組色彩,因此針對一部裝置建立的 DDB 可能無法在不同的裝置上顯示良好。

若要在裝置內容中使用 DDB,它必須具有該裝置內容的色彩組織。 因此,DDB 通常稱為 相容的點陣圖,而且通常具有比 DIB 更好的 GDI 效能。 例如,若要建立視訊記憶體的位圖,最好使用與主要顯示器相同的色彩格式相容的點陣圖。 在視訊記憶體中,轉譯為位圖,並將其顯示到畫面的速度明顯比系統記憶體表面或直接從 DIB 快。

除了啟用更好的 GDI 效能之外,相容的點陣圖還可用來擷取影像(請參閱 擷取影像),以及在運行時間建立位圖,請參閱 中的(請參閱使用功能表 )。

若要在具有不同色彩組織的裝置之間傳輸位圖,請使用 GetDIBits,將相容的位圖轉換成 DIB,並呼叫 SetDIBitsStretchDIBits,將 DIB 顯示給第二個裝置。

DB 有兩種類型:可捨棄和非可分割。 可捨棄的 DDB 是一個點陣圖,如果點陣圖未選取到 DC,而且系統記憶體不足,則系統會捨棄該位圖。 CreateDiscardableBitmap 函式會建立可捨棄的點陣圖。 CreateBitmapCreateCompatibleBitmapCreateBitmapIndirect 函式會建立不可顯示位圖。

應用程式可以從 DIB 建立 DDB,方法是初始化必要的結構,並呼叫 CreateDIBitmap 函式。 在呼叫 createDIBitmap 中指定CBM_INIT相當於呼叫 CreateCompatibleBitmap 函式,以裝置格式建立 DDB,然後呼叫 SetDIBits 函式,將 DIB 位轉譯為 DDB。 若要判斷裝置是否支援 SetDIBits 函式,請呼叫 GetDeviceCaps 函式,並將RC_DI_BITMAP指定為 RASTERCAPS 旗標。