bitmap Device-Dependent
Le bitmap dipendenti dal dispositivo vengono descritte usando una singola struttura, la strutturaBITMAP. 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 di 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 funzioneGetDeviceCaps 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 Color in Bitmap. Poiché ogni dispositivo può avere un proprio set di colori, un DDB creato per un dispositivo potrebbe non essere visualizzato correttamente in un dispositivo diverso.
Per usare un database DDB in un contesto di dispositivo, deve avere l'organizzazione del colore di tale contesto di dispositivo. Pertanto, un DDB viene spesso definito bitmap compatibile e in genere offre 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 nella bitmap e la visualizzazione sullo schermo sono notevolmente 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 dei menu ).
Per trasferire una bitmap tra dispositivi con un'organizzazione a colori diversa, usare GetDIBits per convertire la bitmap compatibile in un DIB e chiamare SetDIBits o StretchDIBits per visualizzare diB al secondo dispositivo.
Esistono due tipi di database: eliminabili e non visualizzabili. Un DDB scartato è una bitmap che il sistema elimina se la bitmap non è selezionata in un controller di dominio e se la memoria di sistema è insufficiente. La funzione CreateDiscardableBitmap crea bitmap scartate. Le CreateBitmap, CreateCompatibleBitmape Le funzioni CreateBitmapIndirect creano bitmap non scrivibili.
Un'applicazione può creare un DDB da un DIB inizializzando le strutture necessarie e chiamando la funzionecreateDIBitmap. Specificando 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 di, chiamare la funzioneGetDeviceCaps, specificando RC_DI_BITMAP come flag RASTERCAPS.