BITMAPV5HEADER Struktur (wingdi.h)
Die BITMAPV5HEADER-Struktur ist die Bitmap-Informationsheaderdatei. Es handelt sich um eine erweiterte Version der BITMAPINFOHEADER-Struktur .
Syntax
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;
Member
bV5Size
Die Anzahl der Byte, die von der Struktur benötigt werden. Anwendungen sollten diesen Member verwenden, um zu bestimmen, welche Bitmap-Informationsheaderstruktur verwendet wird.
bV5Width
Die Breite der Bitmap in Pixel.
Wenn bV5Compression BI_JPEG oder BI_PNG ist, gibt das bV5Width-Element die Breite des dekomprimierten JPEG- oder PNG-Bilds in Pixel an.
bV5Height
Die Höhe der Bitmap in Pixel. Wenn der Wert von bV5Height positiv ist, ist die Bitmap ein DIB von unten nach oben, und ihr Ursprung ist die linke untere Ecke. Wenn der Wert bV5Height negativ ist, ist die Bitmap ein DIB von oben nach unten, und ihr Ursprung ist die obere linke Ecke.
Wenn bV5Height negativ ist und einen DIB von oben nach unten anzeigt, muss bV5Compression entweder BI_RGB oder BI_BITFIELDS sein. Top-Down-DIBs können nicht komprimiert werden.
Wenn bV5Compression BI_JPEG oder BI_PNG ist, gibt das bV5Height-Element die Höhe des dekomprimierten JPEG- oder PNG-Bilds in Pixel an.
bV5Planes
Die Anzahl der Ebenen für das Zielgerät. Dieser Wert muss auf 1 festgelegt werden.
bV5BitCount
Die Anzahl der Bits, die jedes Pixel definieren, und die maximale Anzahl von Farben in der Bitmap.
Dieser Member kann einer der folgenden Werte sein.
Wert | Bedeutung |
---|---|
0 | Die Anzahl der Bits pro Pixel wird durch das JPEG- oder PNG-Dateiformat angegeben oder impliziert. |
1 | Die Bitmap ist monochrom, und das bmiColors-Element von BITMAPINFO enthält zwei Einträge. Jedes Bit im Bitmaparray stellt ein Pixel dar. Wenn das Bit klar ist, wird das Pixel mit der Farbe des ersten Eintrags in der bmiColors-Farbtabelle angezeigt. Wenn das Bit festgelegt ist, hat das Pixel die Farbe des zweiten Eintrags in der Tabelle. |
4 | Die Bitmap hat maximal 16 Farben, und das bmiColors-Element von BITMAPINFO enthält bis zu 16 Einträge. Jedes Pixel in der Bitmap wird durch einen 4-Bit-Index in der Farbtabelle dargestellt. Wenn das erste Byte in der Bitmap beispielsweise 0x1F ist, stellt das Byte zwei Pixel dar. Das erste Pixel enthält die Farbe im zweiten Tabelleneintrag und das zweite Pixel die Farbe im sechzehnten Tabelleneintrag. |
8 | Die Bitmap hat maximal 256 Farben, und das bmiColors-Element von BITMAPINFO enthält bis zu 256 Einträge. In diesem Fall stellt jedes Byte im Array ein einzelnes Pixel dar. |
16 | Die Bitmap hat maximal 2^16 Farben. Wenn das bV5Compression-Element der BITMAPV5HEADER-Struktur BI_RGB ist, ist das bmiColors-Element von BITMAPINFONULL. Jedes WORD im Bitmaparray stellt ein einzelnes Pixel dar. Die relativen Intensitäten von Rot, Grün und Blau werden mit fünf Bits für jede Farbkomponente dargestellt. Der Wert für Blau liegt in den geringsten fünf Bits, gefolgt von jeweils fünf Bits für Grün und Rot. Das wichtigste Bit wird nicht verwendet. Die bmiColors-Farbtabelle wird zum Optimieren von Farben verwendet, die auf palettenbasierten Geräten verwendet werden, und muss die Anzahl von Einträgen enthalten, die vom bV5ClrUsed-Member des BITMAPV5HEADER angegeben werden. Wenn das bV5Compression-Element des BITMAPV5HEADER BI_BITFIELDS ist, enthält das bmiColors-Element drei DWORD-Farbmasken , die die roten, grünen und blauen Komponenten jedes Pixels angeben. Jedes WORD im Bitmaparray stellt ein einzelnes Pixel dar.
Wenn der bV5Compression-Member BI_BITFIELDS ist, müssen bits, die in jeder DWORD-Maske festgelegt sind, zusammenhängend sein und dürfen die Bits einer anderen Maske nicht überlappen. Alle Bits im Pixel müssen nicht verwendet werden. |
24 | Die Bitmap hat maximal 2^24 Farben, und das bmiColors-Element von BITMAPINFO ist NULL. Jedes 3-Byte-Triplet im Bitmaparray stellt die relativen Intensitäten von Blau, Grün und Rot für ein Pixel dar. Die bmiColors-Farbtabelle wird zum Optimieren von Farben verwendet, die auf palettenbasierten Geräten verwendet werden, und muss die Anzahl von Einträgen enthalten, die vom bV5ClrUsed-Member der BITMAPV5HEADER-Struktur angegeben werden. |
32 | Die Bitmap hat maximal 2^32 Farben. Wenn das bV5Compression-Element des BITMAPV5HEADER BI_RGB ist, ist das bmiColors-Element von BITMAPINFONULL. Jedes DWORD im Bitmaparray stellt die relativen Intensitäten von Blau, Grün und Rot für ein Pixel dar. Der Wert für Blau liegt in den geringsten 8 Bits, gefolgt von jeweils 8 Bits für Grün und Rot. Das hohe Byte in jedem DWORD wird nicht verwendet. Die bmiColors-Farbtabelle wird zum Optimieren von Farben verwendet, die auf palettenbasierten Geräten verwendet werden, und muss die Anzahl von Einträgen enthalten, die vom bV5ClrUsed-Member des BITMAPV5HEADER angegeben werden. Wenn das bV5Compression-Element der BITMAPV5HEADER BI_BITFIELDS ist, enthält das bmiColors-Element drei DWORD-Farbmasken , die die roten, grünen und blauen Komponenten jedes Pixels angeben. Jedes DWORD im Bitmaparray stellt ein einzelnes Pixel dar. |
bV5Compression
Gibt an, dass die Bitmap nicht komprimiert ist. Die Elemente bV5RedMask, bV5GreenMask und bV5BlueMask geben die roten, grünen und blauen Komponenten jedes Pixels an. Dies ist gültig, wenn sie mit Bitmaps mit 16 und 32 Bpp verwendet wird. Dieser Member kann einer der folgenden Werte sein.
Wert | Bedeutung |
---|---|
BI_RGB | Ein nicht komprimiertes Format. |
BI_RLE8 | Ein RLE-Format (run-length codd) für Bitmaps mit 8 bpp. Das Komprimierungsformat ist ein Zwei-Byte-Format, das aus einem Count-Byte gefolgt von einem Byte mit einem Farbindex besteht. Wenn bV5Compression BI_RGB ist und das bV5BitCount-Element 16, 24 oder 32 ist, gibt das Bitmaparray die tatsächlichen Intensitäten von Blau, Grün und Rot anstelle von Farbtabellenindizes an. Weitere Informationen finden Sie unter Bitmapkomprimierung. |
BI_RLE4 | Ein RLE-Format für Bitmaps mit 4 bpp. Das Komprimierungsformat ist ein Zwei-Byte-Format, das aus einem Anzahlbyte gefolgt von zwei Wortlängenfarbindizes besteht. Weitere Informationen finden Sie unter Bitmapkomprimierung. |
BI_BITFIELDS | Gibt an, dass die Bitmap nicht komprimiert wird und dass die Farbmasken für die roten, grünen und blauen Komponenten jedes Pixels in den Elementen bV5RedMask, bV5GreenMask und bV5BlueMask angegeben werden. Dies ist gültig, wenn sie mit Bitmaps mit 16 und 32 Bpp verwendet wird. |
BI_JPEG | Gibt an, dass das Bild mithilfe des Austauschformats der JPEG-Datei komprimiert wird. Die JPEG-Komprimierung tauscht die Komprimierung gegen Verlust ab. Es kann ein Komprimierungsverhältnis von 20:1 mit wenig erkennbarem Verlust erreichen. |
BI_PNG | Gibt an, dass das Bild mithilfe des PNG-Dateiaustauschformats komprimiert wird. |
bV5SizeImage
Die Größe des Bilds in Bytes. Dies kann für BI_RGB Bitmaps auf 0 festgelegt werden.
Wenn bV5Compression BI_JPEG oder BI_PNG ist, entspricht bV5SizeImage der Größe des JPEG- oder PNG-Bildpuffers.
bV5XPelsPerMeter
Die horizontale Auflösung des Zielgeräts in Pixel pro Meter für die Bitmap. Eine Anwendung kann diesen Wert verwenden, um eine Bitmap aus einer Ressourcengruppe auszuwählen, die den Merkmalen des aktuellen Geräts am besten entspricht.
bV5YPelsPerMeter
Die vertikale Auflösung des Zielgeräts für die Bitmap in Pixel pro Meter.
bV5ClrUsed
Die Anzahl der Farbindizes in der Farbtabelle, die tatsächlich von der Bitmap verwendet werden. Wenn dieser Wert 0 ist, verwendet die Bitmap die maximale Anzahl von Farben, die dem Wert des bV5BitCount-Elements für den von bV5Compression angegebenen Komprimierungsmodus entsprechen.
Wenn bV5ClrUsed nonzero und bV5BitCount kleiner als 16 ist, gibt das bV5ClrUsed-Element die tatsächliche Anzahl von Farben an, auf die die Grafik-Engine oder der Gerätetreiber zugreift. Wenn bV5BitCount 16 oder höher ist, gibt das bV5ClrUsed-Element die Größe der Farbtabelle an, die zum Optimieren der Leistung der Systemfarbpaletten verwendet wird. Wenn bV5BitCount gleich 16 oder 32 ist, beginnt die optimale Farbpalette unmittelbar nach dem BITMAPV5HEADER. Wenn bV5ClrUsed nichtzero ist, wird die Farbtabelle auf palettisierten Geräten verwendet, und bV5ClrUsed gibt die Anzahl der Einträge an.
bV5ClrImportant
Die Anzahl der Farbindizes, die für die Anzeige der Bitmap erforderlich sind. Wenn dieser Wert 0 ist, sind alle Farben erforderlich.
bV5RedMask
Farbmaske, die die rote Komponente jedes Pixels angibt, ist nur gültig, wenn bV5Compression auf BI_BITFIELDS festgelegt ist.
bV5GreenMask
Farbmaske, die die grüne Komponente jedes Pixels angibt, gilt nur, wenn bV5Compression auf BI_BITFIELDS festgelegt ist.
bV5BlueMask
Farbmaske, die die blaue Komponente jedes Pixels angibt, gilt nur, wenn bV5Compression auf BI_BITFIELDS festgelegt ist.
bV5AlphaMask
Farbmaske, die die Alphakomponente jedes Pixels angibt.
bV5CSType
Der Farbraum des DIB.
Die folgende Tabelle gibt die Werte für bV5CSType an.
Wert | Bedeutung |
---|---|
LCS_CALIBRATED_RGB | Dieser Wert impliziert, dass Endpunkte und Gammawerte in den entsprechenden Feldern angegeben werden. |
LCS_sRGB | Gibt an, dass sich die Bitmap im sRGB-Farbraum befindet. |
LCS_WINDOWS_COLOR_SPACE | Dieser Wert gibt an, dass sich die Bitmap im Systemstandardfarbraum sRGB befindet. |
PROFILE_LINKED | Dieser Wert gibt an, dass bV5ProfileData auf den Dateinamen des zu verwendenden Profils verweist (Gamma- und Endpunktwerte werden ignoriert). |
PROFILE_EMBEDDED | Dieser Wert gibt an, dass bV5ProfileData auf einen Speicherpuffer verweist, der das zu verwendende Profil enthält (Gamma- und Endpunktwerte werden ignoriert). |
Informationen, die einen logischen Farbraum definieren, finden Sie in der LOGCOLORSPACE-Struktur .
bV5Endpoints
Eine CIEXYZTRIPLE-Struktur , die die x-, y- und z-Koordinaten der drei Farben angibt, die den roten, grünen und blauen Endpunkten für den logischen Farbraum entsprechen, der der Bitmap zugeordnet ist. Dieses Element wird ignoriert, es sei denn, das bV5CSType-Element gibt LCS_CALIBRATED_RGB an.
bV5GammaRed
Tonierte Antwortkurve für Rot. Wird verwendet, wenn bV5CSType auf LCS_CALIBRATED_RGB festgelegt ist. Geben Sie im nicht signierten festen 16.16-Format an. Die oberen 16 Bits sind der ganzzahlige Wert ohne Vorzeichen. Die unteren 16 Bits sind der Bruchteil.
bV5GammaGreen
Tonierte Antwortkurve für Grün. Wird verwendet, wenn bV5CSType auf LCS_CALIBRATED_RGB festgelegt ist. Geben Sie im nicht signierten festen 16.16-Format an. Die oberen 16 Bits sind der ganzzahlige Wert ohne Vorzeichen. Die unteren 16 Bits sind der Bruchteil.
bV5GammaBlue
Tonierte Antwortkurve für Blau. Wird verwendet, wenn bV5CSType auf LCS_CALIBRATED_RGB festgelegt ist. Geben Sie im nicht signierten festen 16.16-Format an. Die oberen 16 Bits sind der ganzzahlige Wert ohne Vorzeichen. Die unteren 16 Bits sind der Bruchteil.
bV5Intent
Renderingabsicht für Bitmap. Dies kann einer der folgenden Werte sein.
Wert | Intent | ICC-Name | Bedeutung |
---|---|---|---|
LCS_GM_ABS_COLORIMETRIC | Match | Absolute Farbmetrik | Behält den Weißpunkt bei. Ordnet die Farben der nächstgelegenen Farbe im Zielraum ab. |
LCS_GM_BUSINESS | Graphic | Sättigung | Behält die Sättigung bei. Wird für Geschäftsdiagramme und andere Situationen verwendet, in denen nicht versehene Farben erforderlich sind. |
LCS_GM_GRAPHICS | Proof | Relative Farbmetrik | Verwaltet die farbmetrische Übereinstimmung. Wird für Grafikdesigns und benannte Farben verwendet. |
LCS_GM_IMAGES | Picture | Wahrnehmungs | Behält den Kontrast bei. Wird für Fotografien und natürliche Bilder verwendet. |
bV5ProfileData
Der Offset in Bytes vom Anfang der BITMAPV5HEADER Struktur bis zum Anfang der Profildaten. Wenn das Profil eingebettet ist, sind Die Profildaten das tatsächliche Profil und sind verknüpft. (Die Profildaten sind der mit NULL beendete Dateiname des Profils.) Hierbei kann es sich nicht um eine Unicode-Zeichenfolge handeln. Er muss ausschließlich aus Zeichen aus dem Windows-Zeichensatz (Codepage 1252) bestehen. Diese Profilmitglieder werden ignoriert, es sei denn, das bV5CSType-Element gibt PROFILE_LINKED oder PROFILE_EMBEDDED an.
bV5ProfileSize
Größe eingebetteter Profildaten in Bytes.
bV5Reserved
Dieses Element wurde reserviert. Der Wert sollte auf 0 festgelegt werden.
Hinweise
Wenn bV5Height negativ ist und einen DIB von oben nach unten anzeigt, muss bV5Compression entweder BI_RGB oder BI_BITFIELDS sein. Top-Down-DIBs können nicht komprimiert werden.
Mit der Independent Color Management Interface (ICM) 2.0 können Farbprofile des International Color Consortium (ICC) verknüpft oder in DIBs (DIBs) eingebettet werden. Weitere Informationen finden Sie unter Verwenden von Strukturen .
Wenn ein DIB in den Arbeitsspeicher geladen wird, sollten die Profildaten (sofern vorhanden) der Farbtabelle folgen, und bV5ProfileData sollte den Offset der Profildaten vom Anfang der BITMAPV5HEADER Struktur bereitstellen. Der in bV5ProfileData gespeicherte Wert unterscheidet sich von dem Wert, der vom Sizeof-Operator aufgrund des BITMAPV5HEADER-Arguments zurückgegeben wird, da bV5ProfileData der Offset in Bytes vom Anfang der BITMAPV5HEADER-Struktur bis zum Anfang der Profildaten ist. (Bitmapbits folgen nicht der Farbtabelle im Arbeitsspeicher).) Anwendungen sollten den bV5ProfileData-Member nach dem Laden des DIB in den Arbeitsspeicher ändern.
Bei gepackten DIBs sollten die Profildaten den Bitmapbits ähnlich dem Dateiformat folgen. Das bV5ProfileData-Element sollte weiterhin den Offset der Profildaten vom Anfang des BITMAPV5HEADER.
Anwendungen sollten nur dann auf die Profildaten zugreifen, wenn bV5Size der Größe des BITMAPV5HEADER entspricht und bV5CSType PROFILE_EMBEDDED oder PROFILE_LINKED.
Wenn ein Profil verknüpft ist, kann der Pfad des Profils ein beliebiger vollqualifizierter Name (einschließlich eines Netzwerkpfads) sein, der mit der CreateFile-Funktion geöffnet werden kann.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Kopfzeile | wingdi.h (einschließlich Windows.h) |