Condividi tramite


bitmap Device-Dependent

Le bitmap dipendenti dal dispositivo vengono descritte usando una singola struttura, la struttura BITMAP . I membri di questa struttura specificano la larghezza e l'altezza di un'area rettangolare, in pixel; larghezza della matrice che esegue il mapping delle voci dalla tavolozza dei dispositivi ai pixel; e il formato del colore del dispositivo, in termini di piani di colore e bit per pixel. Un'applicazione può recuperare il formato di colore di un dispositivo chiamando la funzione GetDeviceCaps e specificando le costanti appropriate. Si noti che un DDB non contiene valori di colore; i colori sono invece in un formato dipendente dal dispositivo. Per altre informazioni, vedere Colore nelle bitmap. Poiché ogni dispositivo può avere un proprio set di colori, un DDB creato per un dispositivo potrebbe non essere visualizzato bene in un dispositivo diverso.

Per usare un DDB in un contesto del dispositivo, deve avere l'organizzazione del colore del contesto del dispositivo. Pertanto, un DDB viene spesso chiamato bitmap compatibile e in genere ha prestazioni GDI migliori rispetto a un DIB. Ad esempio, per creare una bitmap per la memoria video, è consigliabile usare una bitmap compatibile con lo stesso formato di colore della visualizzazione primaria. Una volta in memoria video, il rendering della bitmap e la visualizzazione sullo schermo sono significativamente più veloci rispetto a una superficie di memoria di sistema o direttamente da un DIB.

Oltre ad abilitare prestazioni GDI migliori, le bitmap compatibili vengono usate per acquisire immagini (vedere Acquisizione di un'immagine ) e per creare bitmap in fase di esecuzione per i menu vedere "Creazione della bitmap" in (vedere Uso di menu ).

Per trasferire una bitmap tra dispositivi con un'organizzazione a colori diversa, usare GetDIBits per convertire la bitmap compatibile in una bitmap DIB e chiamare SetDIBits o StretchDIBits per visualizzare il DIB nel secondo dispositivo.

Esistono due tipi di DDB: eliminabili e non discardibili. Un DDB scartato è una bitmap che il sistema ignora se la bitmap non è selezionata in un controller di dominio e se la memoria di sistema è bassa. La funzione CreateDiscardableBitmap crea bitmap scartate. Le funzioni CreateBitmap, CreateCompatibleBitmap e CreateBitmapIndirect creano bitmap nondiscardabili.

Un'applicazione può creare un DDB da un DIB inizializzando le strutture necessarie e chiamando la funzione CreateDIBitmap . La specifica di CBM_INIT nella chiamata a CreateDIBitmap equivale a chiamare la funzione CreateCompatibleBitmap per creare un DDB nel formato del dispositivo e quindi chiamare la funzione SetDIBits per convertire i bit DIB nel DDB. Per determinare se un dispositivo supporta la funzione SetDIBits , chiamare la funzione GetDeviceCaps , specificando RC_DI_BITMAP come flag RASTERCAPS.