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.

CatatanRuang warna adalah model untuk mewakili warna secara numerik dalam hal tiga koordinat atau lebih. Misalnya, ruang warna RGB mewakili warna dalam hal koordinat merah, hijau, dan biru.
 

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)

Lihat juga

BITMAPINFO

BITMAPINFOHEADER

BITMAPV5HEADER

Struktur Bitmap

Gambaran Umum Bitmap

CIEXYZTRIPLE

CreateDIBitmap

LOGCOLORSPACE

StretchDIBits