struktur BITMAPV4HEADER (wingdi.h)
Struktur BITMAPV4HEADER adalah file header informasi bitmap. Ini adalah versi yang diperluas dari struktur BITMAPINFOHEADER .
Aplikasi dapat menggunakan struktur BITMAPV5HEADER untuk fungsionalitas tambahan.
Sintaks
typedef struct {
DWORD bV4Size;
LONG bV4Width;
LONG bV4Height;
WORD bV4Planes;
WORD bV4BitCount;
DWORD bV4V4Compression;
DWORD bV4SizeImage;
LONG bV4XPelsPerMeter;
LONG bV4YPelsPerMeter;
DWORD bV4ClrUsed;
DWORD bV4ClrImportant;
DWORD bV4RedMask;
DWORD bV4GreenMask;
DWORD bV4BlueMask;
DWORD bV4AlphaMask;
DWORD bV4CSType;
CIEXYZTRIPLE bV4Endpoints;
DWORD bV4GammaRed;
DWORD bV4GammaGreen;
DWORD bV4GammaBlue;
} BITMAPV4HEADER, *LPBITMAPV4HEADER, *PBITMAPV4HEADER;
Anggota
bV4Size
Jumlah byte yang diperlukan oleh struktur. Aplikasi harus menggunakan anggota ini untuk menentukan struktur header informasi bitmap mana yang sedang digunakan.
bV4Width
Lebar bitmap, dalam piksel.
Jika bV4Compression BI_JPEG atau BI_PNG, bV4Width menentukan lebar gambar JPEG atau PNG dalam piksel.
bV4Height
Tinggi bitmap, dalam piksel. Jika bV4Height positif, bitmap adalah DIB atas bawah dan asalnya adalah sudut kiri bawah. Jika bV4Height negatif, bitmap adalah DIB atas ke bawah dan asalnya adalah sudut kiri atas.
Jika bV4Height negatif, menunjukkan DIB atas ke bawah, bV4Compression harus BI_RGB atau BI_BITFIELDS. DIB atas ke bawah tidak dapat dikompresi.
Jika bV4Compression BI_JPEG atau BI_PNG, bV4Height menentukan tinggi gambar JPEG atau PNG dalam piksel.
bV4Planes
Jumlah bidang untuk perangkat target. Nilai ini harus diatur ke 1.
bV4BitCount
Jumlah bit per piksel. Anggota bV4BitCount dari struktur BITMAPV4HEADER menentukan jumlah bit yang menentukan setiap piksel dan jumlah warna maksimum dalam bitmap. Anggota ini harus menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
0 | Jumlah bit per piksel ditentukan atau disiratkan oleh format file JPEG atau PNG. |
1 | Bitmap adalah monokrom, dan anggota bmiColorsBITMAPINFO berisi dua entri. Setiap bit dalam array bitmap mewakili piksel. Jika bit jelas, piksel ditampilkan dengan warna entri pertama dalam tabel bmiColors ; jika bit diatur, piksel memiliki warna entri kedua dalam tabel. |
4 | Bitmap memiliki maksimum 16 warna, dan anggota bmiColorsBITMAPINFO berisi hingga 16 entri. Setiap piksel dalam bitmap diwakili oleh indeks 4-bit ke dalam tabel warna. Misalnya, jika byte pertama dalam bitmap 0x1F, byte mewakili dua piksel. Piksel pertama berisi warna dalam entri tabel kedua, dan piksel kedua berisi warna dalam entri tabel keenam belas. |
8 | Bitmap memiliki maksimum 256 warna, dan anggota bmiColorsBITMAPINFO berisi hingga 256 entri. Dalam hal ini, setiap byte dalam array mewakili satu piksel. |
16 | Bitmap memiliki maksimum 2^16 warna. Jika anggota bV4Compression dari struktur BITMAPV4HEADER BI_RGB, anggota bmiColorsBITMAPINFO adalah NULL. Setiap WORD dalam array bitmap mewakili satu piksel. Intensitas relatif merah, hijau, dan biru diwakili dengan lima bit untuk setiap komponen warna. Nilai untuk biru berada dalam lima bit yang paling tidak signifikan, diikuti oleh masing-masing lima bit untuk hijau dan merah. Bit yang paling signifikan tidak digunakan. Tabel warna bmiColors digunakan untuk mengoptimalkan warna yang digunakan pada perangkat berbasis palet, dan harus berisi jumlah entri yang ditentukan oleh anggota bV4ClrUsed dari BITMAPV4HEADER. Jika anggota bV4Compressiondari BITMAPV4HEADER BI_BITFIELDS, anggota bmiColors berisi tiga masker warna DWORD yang menentukan komponen merah, hijau, dan biru dari setiap piksel. Setiap WORD dalam array bitmap mewakili satu piksel. |
24 | Bitmap memiliki maksimum 2^24 warna, dan anggota bmiColorsbitMAPINFO adalah NULL. Setiap kembar tiga 3 byte dalam array bitmap mewakili intensitas relatif biru, hijau, dan merah untuk satu piksel. Tabel warna bmiColors digunakan untuk mengoptimalkan warna yang digunakan pada perangkat berbasis palet, dan harus berisi jumlah entri yang ditentukan oleh anggota bV4ClrUsed dari BITMAPV4HEADER. |
32 | Bitmap memiliki maksimum 2^32 warna. Jika anggota bV4Compressiondari BITMAPV4HEADER BI_RGB, anggota bmiColorsBITMAPINFO adalah NULL. Setiap DWORD dalam array bitmap mewakili intensitas relatif biru, hijau, dan merah untuk piksel. Nilai untuk biru berada dalam 8 bit yang paling tidak signifikan, diikuti oleh masing-masing 8 bit untuk hijau dan merah. Byte tinggi di setiap DWORD tidak digunakan. Tabel warna bmiColors digunakan untuk mengoptimalkan warna yang digunakan pada perangkat berbasis palet, dan harus berisi jumlah entri yang ditentukan oleh anggota bV4ClrUsed dari BITMAPV4HEADER. Jika anggota bV4Compressiondari BITMAPV4HEADER BI_BITFIELDS, anggota bmiColors berisi tiga masker warna DWORD yang menentukan komponen merah, hijau, dan biru dari setiap piksel. Setiap DWORD dalam array bitmap mewakili satu piksel. |
bV4V4Compression
Jenis pemadatan untuk bitmap bawah-atas terkompresi (DIB atas-bawah tidak dapat dikompresi). Anggota ini bisa menjadi salah satu nilai berikut.
Nilai | Deskripsi |
---|---|
BI_RGB | Format yang tidak dikompresi. |
BI_RLE8 | Format run-length encoded (RLE) untuk bitmap dengan 8 bpp. Format kompresi adalah format 2-byte yang terdiri dari byte hitungan diikuti oleh byte yang berisi indeks warna. Untuk informasi selengkapnya, lihat Pemadatan Bitmap. |
BI_RLE4 | Format RLE untuk bitmap dengan 4 bpp. Format kompresi adalah format 2-byte yang terdiri dari byte hitungan diikuti oleh dua indeks warna panjang kata. Untuk informasi selengkapnya, lihat Pemadatan Bitmap. |
BI_BITFIELDS | Menentukan bahwa bitmap tidak dikompresi. Anggota bV4RedMask, bV4GreenMask, dan bV4BlueMask menentukan komponen merah, hijau, dan biru untuk setiap piksel. Ini berlaku ketika digunakan dengan bitmap 16 dan 32 bpp. |
BI_JPEG | Menentukan bahwa gambar dikompresi menggunakan format pertukaran file JPEG. Kompresi JPEG bertukar kompresi terhadap kerugian; itu dapat mencapai rasio kompresi 20:1 dengan sedikit kehilangan yang nyata. |
BI_PNG | Menentukan bahwa gambar dikompresi menggunakan format pertukaran file PNG. |
bV4SizeImage
Ukuran, dalam byte, dari gambar. Ini dapat diatur ke nol untuk bitmap BI_RGB.
Jika bV4Compression BI_JPEG atau BI_PNG, bV4SizeImage adalah ukuran buffer gambar JPEG atau PNG.
bV4XPelsPerMeter
Resolusi horizontal, dalam piksel per meter, dari perangkat target untuk bitmap. Aplikasi dapat menggunakan nilai ini untuk memilih bitmap dari grup sumber daya yang paling cocok dengan karakteristik perangkat saat ini.
bV4YPelsPerMeter
Resolusi vertikal, dalam piksel per meter, dari perangkat target untuk bitmap.
bV4ClrUsed
Jumlah indeks warna dalam tabel warna yang benar-benar digunakan oleh bitmap. Jika nilai ini nol, bitmap menggunakan jumlah maksimum warna yang sesuai dengan nilai anggota bV4BitCount untuk mode pemadatan yang ditentukan oleh bV4Compression.
Jika bV4ClrUsed bukan nol dan anggota bV4BitCount kurang dari 16, anggota bV4ClrUsed menentukan jumlah warna aktual yang diakses mesin grafis atau driver perangkat. Jika bV4BitCount adalah 16 atau lebih besar, anggota bV4ClrUsed menentukan ukuran tabel warna yang digunakan untuk mengoptimalkan performa palet warna sistem. Jika bV4BitCount sama dengan 16 atau 32, palet warna optimal akan segera dimulai setelah BITMAPV4HEADER.
bV4ClrImportant
Jumlah indeks warna yang diperlukan untuk menampilkan bitmap. Jika nilai ini nol, semua warna penting.
bV4RedMask
Masker warna yang menentukan komponen merah dari setiap piksel, hanya valid jika bV4Compression diatur ke BI_BITFIELDS.
bV4GreenMask
Masker warna yang menentukan komponen hijau dari setiap piksel, hanya valid jika bV4Compression diatur ke BI_BITFIELDS.
bV4BlueMask
Masker warna yang menentukan komponen biru dari setiap piksel, hanya valid jika bV4Compression diatur ke BI_BITFIELDS.
bV4AlphaMask
Masker warna yang menentukan komponen alfa dari setiap piksel.
bV4CSType
Ruang warna DIB. Tabel berikut mencantumkan nilai untuk bV4CSType.
Nilai | Makna |
---|---|
LCS_CALIBRATED_RGB | Nilai ini menunjukkan bahwa titik akhir dan nilai gamma diberikan dalam bidang yang sesuai. |
Lihat struktur LOGCOLORSPACE untuk informasi yang menentukan ruang warna logis.
bV4Endpoints
Struktur CIEXYZTRIPLE yang menentukan koordinat x, y, dan z dari tiga warna yang sesuai dengan titik akhir merah, hijau, dan biru untuk ruang warna logis yang terkait dengan bitmap. Anggota ini diabaikan kecuali anggota bV4CSType menentukan LCS_CALIBRATED_RGB.
bV4GammaRed
Kurva respons nada merah. Anggota ini diabaikan kecuali nilai warna dikalibrasi nilai RGB dan bV4CSType diatur ke LCS_CALIBRATED_RGB. Tentukan dalam format 16.16 tetap yang tidak ditandatangani. 16 bit atas adalah nilai bilangan bulat yang tidak ditandatangani. 16 bit yang lebih rendah adalah bagian pecahan.
bV4GammaGreen
Kurva respons nada untuk hijau. Digunakan jika bV4CSType diatur ke LCS_CALIBRATED_RGB. Tentukan dalam format 16.16 tetap yang tidak ditandatangani. 16 bit atas adalah nilai bilangan bulat yang tidak ditandatangani. 16 bit yang lebih rendah adalah bagian pecahan.
bV4GammaBlue
Kurva respons nada untuk biru. Digunakan jika bV4CSType diatur ke LCS_CALIBRATED_RGB. Tentukan dalam format 16.16 tetap yang tidak ditandatangani. 16 bit atas adalah nilai bilangan bulat yang tidak ditandatangani. 16 bit yang lebih rendah adalah bagian pecahan.
Keterangan
Struktur BITMAPV4HEADER diperluas untuk memungkinkan gambar JPEG atau PNG diteruskan sebagai gambar sumber ke StretchDIBits.
Persyaratan
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Header | wingdi.h (sertakan Windows.h) |