Freigeben über


Device-Dependent Bitmaps

Geräteabhängige Bitmaps (DDBs) werden mithilfe einer einzelnen Struktur beschrieben, der BITMAP--Struktur. Die Elemente dieser Struktur geben die Breite und Höhe eines rechteckigen Bereichs in Pixel an; die Breite des Arrays, das Einträge aus der Gerätepalette zu Pixeln zuordnet; und das Farbformat des Geräts in Bezug auf Farbebenen und Bits pro Pixel. Eine Anwendung kann das Farbformat eines Geräts abrufen, indem die GetDeviceCaps--Funktion aufgerufen und die entsprechenden Konstanten angegeben werden. Beachten Sie, dass eine DDB keine Farbwerte enthält; Stattdessen befinden sich die Farben in einem geräteabhängigen Format. Weitere Informationen finden Sie unter Farbe in Bitmaps. Da jedes Gerät über einen eigenen Satz von Farben verfügen kann, wird eine für ein Gerät erstellte DDB möglicherweise nicht gut auf einem anderen Gerät angezeigt.

Um eine DDB in einem Gerätekontext zu verwenden, muss sie über die Farborganisation dieses Gerätekontexts verfügen. Daher wird eine DDB häufig als kompatible Bitmap- bezeichnet und hat in der Regel eine bessere GDI-Leistung als ein DIB. Um beispielsweise eine Bitmap für den Videospeicher zu erstellen, empfiehlt es sich, eine kompatible Bitmap mit demselben Farbformat wie die primäre Anzeige zu verwenden. Einmal im Videospeicher ist das Rendern der Bitmap und das Anzeigen auf dem Bildschirm wesentlich schneller als von einer Systemspeicheroberfläche oder direkt aus einem DIB.

Neben der Besseren GDI-Leistung werden kompatible Bitmaps zum Erfassen von Bildern verwendet (siehe Erfassen eines Bilds) und zum Erstellen von Bitmaps zur Laufzeit für Menüs siehe "Erstellen der Bitmap" in (siehe Verwenden von Menüs).

Um eine Bitmap zwischen Geräten mit unterschiedlicher Farborganisation zu übertragen, verwenden Sie GetDIBits-, um die kompatible Bitmap in ein DIB zu konvertieren und SetDIBits- oder StretchDIBits-, um die DIB auf das zweite Gerät anzuzeigen.

Es gibt zwei Arten von DDBs: verworfen und nicht verworfen. Eine verworfene DDB ist eine Bitmap, die vom System verworfen wird, wenn die Bitmap nicht in einem DC ausgewählt ist und der Systemspeicher niedrig ist. Die CreateDiscardableBitmap--Funktion erstellt verworfene Bitmaps. Die CreateBitmap-, CreateCompatibleBitmap-und CreateBitmapIndirect--Funktionen erstellen nicht verwertbare Bitmaps.

Eine Anwendung kann eine DDB aus einem DIB erstellen, indem die erforderlichen Strukturen initialisiert und die CreateDIBitmap--Funktion aufgerufen wird. Das Angeben von CBM_INIT im Aufruf von CreateDIBitmap- entspricht dem Aufrufen der CreateCompatibleBitmap--Funktion, um eine DDB im Format des Geräts zu erstellen und dann die SetDIBits--Funktion aufzurufen, um die DIB-Bits in die DDB zu übersetzen. Um festzustellen, ob ein Gerät die SetDIBits--Funktion unterstützt, rufen Sie die GetDeviceCaps--Funktion auf, wobei RC_DI_BITMAP als RASTERCAPS-Flag angegeben wird.