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)

Vedi anche

BITMAPINFO

BITMAPINFOHEADER

BITMAPV4HEADER

Strutture bitmap

Panoramica delle bitmap

CIEXYZTRIPLE

CreateDIBitmap

LOGCOLORSPACE

StretchDIBits