Sdílet prostřednictvím


rastrové obrázky Device-Dependent

Bitmapy závislé na zařízení (DBS) jsou popsány pomocí jedné struktury, BITMAP struktury. Členové této struktury určují šířku a výšku obdélníkové oblasti v pixelech; šířka pole, které mapuje položky z palety zařízení na pixely; a barevný formát zařízení z hlediska barevných rovin a bitů na pixel. Aplikace může načíst barevný formát zařízení zavoláním funkce GetDeviceCaps a určením příslušných konstant. Všimněte si, že databáze DDB neobsahuje barevné hodnoty; místo toho jsou barvy ve formátu závislém na zařízení. Další informace naleznete v tématu Barva v bitmapách. Vzhledem k tomu, že každé zařízení může mít vlastní sadu barev, nemusí se databáze DDB vytvořená pro jedno zařízení dobře zobrazovat na jiném zařízení.

Pokud chcete použít databázi DDB v kontextu zařízení, musí mít barevnou organizaci tohoto kontextu zařízení. DDB se proto často nazývá kompatibilní rastrový a obvykle má lepší výkon GDI než DIB. Chcete-li například vytvořit rastrový obrázek pro paměť videa, je nejlepší použít kompatibilní rastrový obrázek se stejným barevným formátem jako primární displej. Jakmile je v paměti videa, vykreslování na rastrový obrázek a jeho zobrazení na obrazovce je výrazně rychlejší než z povrchu systémové paměti nebo přímo z DIB.

Kromě povolení lepšího výkonu GDI se k zachycení obrázků používají kompatibilní rastrové obrázky (viz Zachycení obrázku) a k vytváření rastrových obrázků za běhu nabídek naleznete v části "Vytvoření rastru" v (viz Použití nabídek ).

Pokud chcete přenést rastrový obrázek mezi zařízeními s jinou barevnou organizací, použijte GetDIBits k převodu kompatibilního rastrového obrázku na DIB a volání SetDIBits nebo StretchDIBits k zobrazení DIB na druhé zařízení.

Existují dva typy databází: zahození a nediscardable. Zahoditelná databáze DDB je rastrový obrázek, který systém zahodí, pokud rastr není vybrán do řadiče domény a pokud je systémová paměť nízká. Funkce CreateDiscardableBitmap vytvoří zahozené rastrové obrázky. Funkce CreateBitmap, CreateCompatibleBitmapa CreateBitmapIndirect vytvářejí nediscardable bitmapy.

Aplikace může vytvořit DDB z DIB inicializací požadovaných struktur a voláním funkce CreateDIBitmap. Určení CBM_INIT ve volání CreateDIBitmap je ekvivalentní volání CreateCompatibleBitmap funkce k vytvoření DDB ve formátu zařízení a následné volání funkce SetDIBits k překladu bitů DIB do DDB. Pokud chcete zjistit, jestli zařízení podporuje funkci SetDIBits, zavolejte funkci GetDeviceCaps a jako příznak RASTERCAPS zadejte RC_DI_BITMAP.