BITMAPV5HEADER struttura (wingdi.h)
La struttura BITMAPV5HEADER è il file di intestazione delle informazioni bitmap. È una versione estesa della struttura BITMAPINFOHEADER .
Sintassi
typedef struct {
DWORD bV5Size;
LONG bV5Width;
LONG bV5Height;
WORD bV5Planes;
WORD bV5BitCount;
DWORD bV5Compression;
DWORD bV5SizeImage;
LONG bV5XPelsPerMeter;
LONG bV5YPelsPerMeter;
DWORD bV5ClrUsed;
DWORD bV5ClrImportant;
DWORD bV5RedMask;
DWORD bV5GreenMask;
DWORD bV5BlueMask;
DWORD bV5AlphaMask;
DWORD bV5CSType;
CIEXYZTRIPLE bV5Endpoints;
DWORD bV5GammaRed;
DWORD bV5GammaGreen;
DWORD bV5GammaBlue;
DWORD bV5Intent;
DWORD bV5ProfileData;
DWORD bV5ProfileSize;
DWORD bV5Reserved;
} BITMAPV5HEADER, *LPBITMAPV5HEADER, *PBITMAPV5HEADER;
Members
bV5Size
Numero di byte richiesti dalla struttura. Le applicazioni devono usare questo membro per determinare la struttura dell'intestazione delle informazioni bitmap usata.
bV5Width
Larghezza della bitmap, in pixel.
Se bV5Compression è BI_JPEG o BI_PNG, il membro bV5Width specifica la larghezza dell'immagine JPEG o PNG decompressa in pixel.
bV5Height
Altezza della bitmap, in pixel. Se il valore di bV5Height è positivo, la bitmap è un DIB inferiore e la relativa origine è l'angolo inferiore sinistro. Se il valore bV5Height è negativo, la bitmap è un DIB superiore verso il basso e la relativa origine è l'angolo superiore sinistro.
Se bV5Height è negativo, indicante un DIB in alto verso il basso, bV5Compression deve essere BI_RGB o BI_BITFIELDS. Non è possibile comprimere i dib in alto verso il basso.
Se bV5Compression è BI_JPEG o BI_PNG, il membro bV5Height specifica l'altezza dell'immagine JPEG o PNG decompressa in pixel.
bV5Planes
Numero di piani per il dispositivo di destinazione. Questo valore deve essere impostato su 1.
bV5BitCount
Numero di bit che definiscono ogni pixel e il numero massimo di colori nella bitmap.
Questo membro può essere uno dei valori seguenti.
Valore | Significato |
---|---|
0 | Il numero di bit per pixel viene specificato o è implicito dal formato di file JPEG o PNG. |
1 | La bitmap è monocromatica e il membro bmiColors di BITMAPINFO contiene due voci. Ogni bit nella matrice bitmap rappresenta un pixel. Se il bit è chiaro, il pixel viene visualizzato con il colore della prima voce nella tabella dei colori bmiColors . Se il bit è impostato, il pixel ha il colore della seconda voce nella tabella. |
4 | La bitmap ha un massimo di 16 colori e il membro bmiColors di BITMAPINFO contiene fino a 16 voci. Ogni pixel nella bitmap è rappresentato da un indice a 4 bit nella tabella dei colori. Ad esempio, se il primo byte nella bitmap è 0x1F, il byte rappresenta due pixel. Il primo pixel contiene il colore nella seconda voce della tabella e il secondo pixel contiene il colore nella voce della sedicesima tabella. |
8 | La bitmap ha un massimo di 256 colori e il membro bmiColors di BITMAPINFO contiene fino a 256 voci. In questo caso, ogni byte nella matrice rappresenta un singolo pixel. |
16 | La bitmap ha un massimo di 2^16 colori. Se il membro bV5Compression della struttura BITMAPV5HEADER è BI_RGB, il membro bmiColors di BITMAPINFO è NULL. Ogni WORD nella matrice bitmap rappresenta un singolo pixel. Le intensità relative di rosso, verde e blu sono rappresentate con cinque bit per ogni componente di colore. Il valore per il blu è nel minimo significativo cinque bit, seguito da cinque bit ciascuno per verde e rosso. Il bit più significativo non viene usato. La tabella dei colori bmiColors viene usata per ottimizzare i colori usati nei dispositivi basati su tavolozza e deve contenere il numero di voci specificate dal membro bV5ClrUsed del BITMAPV5HEADER. Se il membro bV5Compression del BITMAPV5HEADER è BI_BITFIELDS, il membro bmiColors contiene tre maschere di colore DWORD che specificano rispettivamente i componenti rosso, verde e blu di ogni pixel. Ogni WORD nella matrice bitmap rappresenta un singolo pixel.
Quando il membro bV5Compression è BI_BITFIELDS, i bit impostati in ogni maschera DWORD devono essere contigui e non devono sovrapporsi ai bit di un'altra maschera. Tutti i bit nel pixel non devono essere usati. |
24 | La bitmap ha un massimo di 2^24 colori e il membro bmiColors di BITMAPINFO è NULL. Ogni tripletta a 3 byte nella matrice bitmap rappresenta rispettivamente l'intensità relativa di blu, verde e rosso, rispettivamente per un pixel. La tabella dei colori bmiColors viene usata per ottimizzare i colori usati nei dispositivi basati sulla tavolozza e deve contenere il numero di voci specificate dal membro bV5ClrUsed della struttura BITMAPV5HEADER . |
32 | La bitmap ha un massimo di 2^32 colori. Se il membro bV5Compression del BITMAPV5HEADER è BI_RGB, il membro bmiColors di BITMAPINFO è NULL. Ogni DWORD nella matrice bitmap rappresenta l'intensità relativa di blu, verde e rosso per un pixel. Il valore per blu è nel minimo significativo 8 bit, seguito da 8 bit ogni per verde e rosso. Il byte elevato in ogni DWORD non viene usato. La tabella dei colori bmiColors viene usata per ottimizzare i colori usati nei dispositivi basati su tavolozza e deve contenere il numero di voci specificate dal membro bV5ClrUsed del BITMAPV5HEADER. Se il membro bV5Compression del BITMAPV5HEADER è BI_BITFIELDS, il membro bmiColors contiene tre maschere di colore DWORD che specificano i componenti rossi, verdi e blu di ogni pixel. Ogni DWORD nella matrice bitmap rappresenta un singolo pixel. |
bV5Compression
Specifica che la bitmap non è compressa. I membri bV5RedMask, bV5GreenMask e bV5BlueMask specificano i componenti rosso, verde e blu di ogni pixel. Questa operazione è valida quando viene usata con bitmap da 16 a 32-bpp. Questo membro può essere uno dei valori seguenti.
Valore | Significato |
---|---|
BI_RGB | Formato non compresso. |
BI_RLE8 | Formato con codifica run-length (RLE) per le bitmap con 8 bpp. Il formato di compressione è un formato a due byte costituito da un byte di conteggio seguito da un byte contenente un indice di colore. Se bV5Compression è BI_RGB e il membro bV5BitCount è pari a 16, 24 o 32, la matrice bitmap specifica le intensità effettive di blu, verde e rosso anziché usare indici di tabella dei colori. Per altre informazioni, vedere Compressione bitmap. |
BI_RLE4 | Formato RLE per le bitmap con 4 bpp. Il formato di compressione è un formato a due byte costituito da un conteggio byte seguito da due indici di colore di lunghezza della parola. Per altre informazioni, vedere Compressione bitmap. |
BI_BITFIELDS | Specifica che la bitmap non è compressa e che le maschere di colore per i componenti rossi, verdi e blu di ogni pixel vengono specificate nei membri bV5RedMask, bV5GreenMask e bV5BlueMask. Questa operazione è valida quando viene usata con bitmap da 16 a 32-bpp. |
BI_JPEG | Specifica che l'immagine viene compressa usando il formato di interscambio del file JPEG. La compressione JPEG scambia la compressione contro la perdita; può ottenere un rapporto di compressione di 20:1 con una perdita minima evidente. |
BI_PNG | Specifica che l'immagine viene compressa usando il formato di interscambio file PNG. |
bV5SizeImage
Dimensioni, in byte, dell'immagine. Può essere impostato su zero per le bitmap BI_RGB.
Se bV5Compression è BI_JPEG o BI_PNG, bV5SizeImage è la dimensione del buffer di immagini JPEG o PNG.
bV5XPelsPerMeter
Risoluzione orizzontale, in pixel per contatore, del dispositivo di destinazione per la bitmap. Un'applicazione può usare questo valore per selezionare una bitmap da un gruppo di risorse che corrisponde meglio alle caratteristiche del dispositivo corrente.
bV5YPelsPerMeter
Risoluzione verticale, in pixel per contatore, del dispositivo di destinazione per la bitmap.
bV5ClrUsed
Numero di indici di colore nella tabella dei colori effettivamente usati dalla bitmap. Se questo valore è zero, la bitmap usa il numero massimo di colori corrispondenti al valore del membro bV5BitCount per la modalità di compressione specificata da bV5Compression.
Se bV5ClrUsed è diverso da zero e bV5BitCount è minore di 16, il membro bV5ClrUsed specifica il numero effettivo di colori a cui accede il motore grafico o i driver di dispositivo. Se bV5BitCount è 16 o superiore, il membro bV5ClrUsed specifica le dimensioni della tabella colori utilizzata per ottimizzare le prestazioni delle tavolozze dei colori di sistema. Se bV5BitCount è uguale a 16 o 32, la tavolozza dei colori ottimale inizia immediatamente dopo la BITMAPV5HEADER. Se bV5ClrUsed è diverso da zero, la tabella dei colori viene usata nei dispositivi palettizzati e bV5ClrUsed specifica il numero di voci.
bV5ClrImportant
Numero di indici di colore necessari per la visualizzazione della bitmap. Se questo valore è zero, sono necessari tutti i colori.
bV5RedMask
Maschera di colore che specifica il componente rosso di ogni pixel, valida solo se bV5Compression è impostato su BI_BITFIELDS.
bV5GreenMask
Maschera di colore che specifica il componente verde di ogni pixel, valida solo se bV5Compression è impostata su BI_BITFIELDS.
bV5BlueMask
Maschera di colore che specifica il componente blu di ogni pixel, valida solo se bV5Compression è impostato su BI_BITFIELDS.
bV5AlphaMask
Maschera di colore che specifica il componente alfa di ogni pixel.
bV5CSType
Spazio dei colori del DIB.
Nella tabella seguente vengono specificati i valori per bV5CSType.
Valore | Significato |
---|---|
LCS_CALIBRATED_RGB | Questo valore implica che gli endpoint e i valori gamma vengono specificati nei campi appropriati. |
LCS_sRGB | Specifica che la bitmap si trova nello spazio dei colori sRGB. |
LCS_WINDOWS_COLOR_SPACE | Questo valore indica che la bitmap si trova nello spazio colore predefinito del sistema, sRGB. |
PROFILE_LINKED | Questo valore indica che bV5ProfileData punta al nome file del profilo da usare (i valori gamma ed endpoint vengono ignorati). |
PROFILE_EMBEDDED | Questo valore indica che bV5ProfileData punta a un buffer di memoria che contiene il profilo da usare (i valori gamma ed endpoint vengono ignorati). |
Per informazioni su come definire uno spazio dei colori logico, vedere la struttura LOGCOLORSPACE .
bV5Endpoints
Struttura CIEXYZTRIPLE che specifica le coordinate x, y e z dei tre colori corrispondenti agli endpoint rosso, verde e blu per lo spazio dei colori logico associato alla bitmap. Questo membro viene ignorato a meno che il membro bV5CSType non specifichi LCS_CALIBRATED_RGB.
bV5GammaRed
Curva di risposta tonica per il rosso. Utilizzato se bV5CSType è impostato su LCS_CALIBRATED_RGB. Specificare in formato 16.16 fisso senza segno. I 16 bit superiori sono il valore intero senza segno. I 16 bit inferiori sono la parte frazionaria.
bV5GammaGreen
Curva di risposta tonica per il verde. Utilizzato se bV5CSType è impostato su LCS_CALIBRATED_RGB. Specificare in formato 16.16 fisso senza segno. I 16 bit superiori sono il valore intero senza segno. I 16 bit inferiori sono la parte frazionaria.
bV5GammaBlue
Curva di risposta tonica per blu. Utilizzato se bV5CSType è impostato su LCS_CALIBRATED_RGB. Specificare in formato 16.16 fisso senza segno. I 16 bit superiori sono il valore intero senza segno. I 16 bit inferiori sono la parte frazionaria.
bV5Intent
Finalità di rendering per bitmap. Può trattarsi di uno dei valori seguenti.
Valore | Finalità | Nome CPI | Significato |
---|---|---|---|
LCS_GM_ABS_COLORIMETRIC | Corrispondenza | Colorimetrica assoluta | Mantiene il punto bianco. Associa i colori al colore più vicino nella gamma di destinazione. |
LCS_GM_BUSINESS | Graphic | Saturazione | Mantiene la saturazione. Usato per i grafici aziendali e altre situazioni in cui sono necessari colori senzathering. |
LCS_GM_GRAPHICS | Proof | Colorimetrica relativa | Mantiene la corrispondenza colorimetrica. Utilizzato per disegni grafici e colori denominati. |
LCS_GM_IMAGES | Immagine | Percettivo | Mantiene il contrasto. Utilizzato per fotografie e immagini naturali. |
bV5ProfileData
Offset, in byte, dall'inizio della struttura BITMAPV5HEADER all'inizio dei dati del profilo. Se il profilo è incorporato, i dati del profilo sono il profilo effettivo e sono collegati. I dati del profilo sono il nome file con terminazione Null del profilo. Non può trattarsi di una stringa Unicode. Deve essere composto esclusivamente da caratteri del set di caratteri di Windows (tabella codici 1252). Questi membri del profilo vengono ignorati a meno che il membro bV5CSType non specifichi PROFILE_LINKED o PROFILE_EMBEDDED.
bV5ProfileSize
Dimensioni, in byte, dei dati del profilo incorporati.
bV5Reserved
Questo membro è stato riservato. Il valore deve essere impostato su zero.
Commenti
Se bV5Height è negativo, che indica un DIB dall'alto verso il basso, bV5Compression deve essere BI_RGB o BI_BITFIELDS. I DIB dall'alto verso il basso non possono essere compressi.
L'interfaccia ICM (Independent Color Management Interface) 2.0 consente di collegare o incorporare profili di colore INTERNATIONAL Color Consortium (CP) in DIB (DIB). Per altre informazioni, vedere Uso di strutture .
Quando un DIB viene caricato in memoria, i dati del profilo (se presenti) devono seguire la tabella dei colori e bV5ProfileData deve fornire l'offset dei dati del profilo dall'inizio della struttura BITMAPV5HEADER . Il valore archiviato in bV5ProfileData sarà diverso dal valore restituito dall'operatore sizeof dato l'argomento BITMAPV5HEADER , perché bV5ProfileData è l'offset in byte dall'inizio della struttura BITMAPV5HEADER all'inizio dei dati del profilo. I bit bitmap non seguono la tabella dei colori in memoria. Le applicazioni devono modificare il membro bV5ProfileData dopo il caricamento del diB in memoria.
Per i dib compressi, i dati del profilo devono seguire i bit bitmap simili al formato di file. Il membro bV5ProfileData deve comunque restituire l'offset dei dati del profilo dall'inizio del BITMAPV5HEADER.
Le applicazioni devono accedere ai dati del profilo solo quando bV5Size è uguale alla dimensione del BITMAPV5HEADER e bV5CSType è uguale a PROFILE_EMBEDDED o PROFILE_LINKED.
Se un profilo è collegato, il percorso del profilo può essere qualsiasi nome completo (incluso un percorso di rete) che può essere aperto usando la funzione CreateFile .
Requisiti
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Intestazione | wingdi.h (include Windows.h) |