Bagikan melalui


struktur BITMAPV5HEADER (wingdi.h)

Struktur BITMAPV5HEADER adalah file header informasi bitmap. Ini adalah versi yang diperluas dari struktur BITMAPINFOHEADER .

Sintaks

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;

Anggota

bV5Size

Jumlah byte yang diperlukan oleh struktur. Aplikasi harus menggunakan anggota ini untuk menentukan struktur header informasi bitmap mana yang sedang digunakan.

bV5Width

Lebar bitmap, dalam piksel.

Jika bV5Compression BI_JPEG atau BI_PNG, anggota bV5Width menentukan lebar gambar JPEG atau PNG yang didekompresi dalam piksel.

bV5Height

Tinggi bitmap, dalam piksel. Jika nilai bV5Height positif, bitmap adalah DIB atas bawah dan asalnya adalah sudut kiri bawah. Jika nilai bV5Height negatif, bitmap adalah DIB atas ke bawah dan asalnya adalah sudut kiri atas.

Jika bV5Height negatif, menunjukkan DIB atas ke bawah, bV5Compression harus BI_RGB atau BI_BITFIELDS. DIB atas ke bawah tidak dapat dikompresi.

Jika bV5Compression BI_JPEG atau BI_PNG, anggota bV5Height menentukan tinggi gambar JPEG atau PNG yang didekompresi dalam piksel.

bV5Planes

Jumlah bidang untuk perangkat target. Nilai ini harus diatur ke 1.

bV5BitCount

Jumlah bit yang menentukan setiap piksel dan jumlah maksimum warna dalam bitmap.

Anggota ini bisa 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 warna 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 bV5Compression dari struktur BITMAPV5HEADER 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 signifikan, diikuti oleh lima bit masing-masing 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 bV5ClrUsed dari BITMAPV5HEADER. Jika anggota bV5Compressiondari BITMAPV5HEADER BI_BITFIELDS, anggota bmiColors berisi tiga masker warna DWORD yang menentukan komponen merah, hijau, dan biru, masing-masing, dari setiap piksel. Setiap WORD dalam array bitmap mewakili satu piksel.

Ketika anggota bV5Compression BI_BITFIELDS, bit yang diatur di setiap masker DWORD harus berdampingan dan tidak boleh tumpang tindih dengan bit masker lain. Semua bit dalam piksel tidak perlu digunakan.

24 Bitmap memiliki maksimum 2^24 warna, dan anggota bmiColorsbitMAPINFO adalah NULL. Setiap kembar tiga 3 byte dalam array bitmap mewakili intensitas relatif masing-masing 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 bV5ClrUsed dari struktur BITMAPV5HEADER .
32 Bitmap memiliki maksimum 2^32 warna. Jika anggota bV5Compressiondari BITMAPV5HEADER 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 bV5ClrUsed dari BITMAPV5HEADER. Jika anggota bV5Compressiondari BITMAPV5HEADER 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.

bV5Compression

Menentukan bahwa bitmap tidak dikompresi. Anggota bV5RedMask, bV5GreenMask, dan bV5BlueMask menentukan komponen merah, hijau, dan biru dari setiap piksel. Ini berlaku ketika digunakan dengan bitmap 16 dan 32 bpp. Anggota ini bisa menjadi salah satu nilai berikut.

Nilai Makna
BI_RGB Format yang tidak dikompresi.
BI_RLE8 Format run-length encoded (RLE) untuk bitmap dengan 8 bpp. Format pemadatan adalah format dua byte yang terdiri dari byte hitungan diikuti oleh byte yang berisi indeks warna. Jika bV5Compression BI_RGB dan anggota bV5BitCount adalah 16, 24, atau 32, array bitmap menentukan intensitas aktual biru, hijau, dan merah daripada menggunakan indeks tabel warna. Untuk informasi selengkapnya, lihat Pemadatan Bitmap.
BI_RLE4 Format RLE untuk bitmap dengan 4 bpp. Format pemadatan adalah format dua 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 dan bahwa masker warna untuk komponen merah, hijau, dan biru dari setiap piksel ditentukan dalam anggota bV5RedMask, bV5GreenMask, dan bV5BlueMask . Ini berlaku ketika digunakan dengan bitmap 16 dan 32 bpp.
BI_JPEG Menentukan bahwa gambar dikompresi menggunakan Format Pertukaran file JPEG. Kompresi JPEG memperdagangkan kompresi terhadap kerugian; itu dapat mencapai rasio kompresi 20:1 dengan sedikit kerugian yang nyata.
BI_PNG Menentukan bahwa gambar dikompresi menggunakan Format Pertukaran file PNG.

bV5SizeImage

Ukuran, dalam byte, gambar. Ini mungkin diatur ke nol untuk bitmap BI_RGB.

Jika bV5Compression BI_JPEG atau BI_PNG, bV5SizeImage adalah ukuran buffer gambar JPEG atau PNG.

bV5XPelsPerMeter

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.

bV5YPelsPerMeter

Resolusi vertikal, dalam piksel-per-meter, dari perangkat target untuk bitmap.

bV5ClrUsed

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 bV5BitCount untuk mode pemadatan yang ditentukan oleh bV5Compression.

Jika bV5ClrUsed nonzero dan bV5BitCount kurang dari 16, anggota bV5ClrUsed menentukan jumlah warna aktual yang diakses mesin grafis atau driver perangkat. Jika bV5BitCount adalah 16 atau lebih besar, anggota bV5ClrUsed menentukan ukuran tabel warna yang digunakan untuk mengoptimalkan performa palet warna sistem. Jika bV5BitCount sama dengan 16 atau 32, palet warna optimal akan segera dimulai setelah BITMAPV5HEADER. Jika bV5ClrUsed bukan nol, tabel warna digunakan pada perangkat yang dipalsukan, dan bV5ClrUsed menentukan jumlah entri.

bV5ClrImportant

Jumlah indeks warna yang diperlukan untuk menampilkan bitmap. Jika nilai ini nol, semua warna diperlukan.

bV5RedMask

Masker warna yang menentukan komponen merah dari setiap piksel, hanya valid jika bV5Compression diatur ke BI_BITFIELDS.

bV5GreenMask

Masker warna yang menentukan komponen hijau dari setiap piksel, hanya valid jika bV5Compression diatur ke BI_BITFIELDS.

bV5BlueMask

Masker warna yang menentukan komponen biru dari setiap piksel, hanya valid jika bV5Compression diatur ke BI_BITFIELDS.

bV5AlphaMask

Masker warna yang menentukan komponen alfa dari setiap piksel.

bV5CSType

Ruang warna DIB.

Tabel berikut menentukan nilai untuk bV5CSType.

Nilai Makna
LCS_CALIBRATED_RGB Nilai ini menyiratkan bahwa titik akhir dan nilai gamma diberikan dalam bidang yang sesuai.
LCS_sRGB Menentukan bahwa bitmap berada di ruang warna sRGB.
LCS_WINDOWS_COLOR_SPACE Nilai ini menunjukkan bahwa bitmap berada di ruang warna default sistem, sRGB.
PROFILE_LINKED Nilai ini menunjukkan bahwa bV5ProfileData menunjuk ke nama file profil yang akan digunakan (nilai gamma dan titik akhir diabaikan).
PROFILE_EMBEDDED Nilai ini menunjukkan bahwa bV5ProfileData menunjuk ke buffer memori yang berisi profil yang akan digunakan (nilai gamma dan titik akhir diabaikan).
 

Lihat struktur LOGCOLORSPACE untuk informasi yang menentukan ruang warna logis.

bV5Endpoints

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 bV5CSType menentukan LCS_CALIBRATED_RGB.

bV5GammaRed

Kurva respons toned untuk merah. Digunakan jika bV5CSType 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.

bV5GammaGreen

Kurva respons toned untuk hijau. Digunakan jika bV5CSType 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.

bV5GammaBlue

Kurva respons satu ton untuk biru. Digunakan jika bV5CSType 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.

bV5Intent

Merender niat untuk bitmap. Ini bisa menjadi salah satu nilai berikut.

Nilai Niat Nama ICC Makna
LCS_GM_ABS_COLORIMETRIC Cocok Colorimetric Absolut Mempertahankan titik putih. Mencocokkan warna dengan warna terdekatnya di gamut tujuan.
LCS_GM_BUSINESS Graphic Saturasi Menjaga kejenuhan. Digunakan untuk bagan bisnis dan situasi lain di mana warna yang tidak terkait diperlukan.
LCS_GM_GRAPHICS Bukti Colorimetric Relatif Mempertahankan kecocokan colorimetric. Digunakan untuk desain grafis dan warna bernama.
LCS_GM_IMAGES Gambar Persepsi Mempertahankan kontras. Digunakan untuk foto dan gambar alami.

bV5ProfileData

Offset, dalam byte, dari awal struktur BITMAPV5HEADER hingga awal data profil. Jika profil disematkan, data profil adalah profil aktual, dan profil tersebut ditautkan. (Data profil adalah nama file profil yang dihentikan null.) Ini tidak boleh berupa untai (karakter) Unicode. Ini harus terdiri secara eksklusif karakter dari set karakter Windows (halaman kode 1252). Anggota profil ini diabaikan kecuali anggota bV5CSType menentukan PROFILE_LINKED atau PROFILE_EMBEDDED.

bV5ProfileSize

Ukuran, dalam byte, dari data profil yang disematkan.

bV5Reserved

Anggota ini telah dicadangkan. Nilainya harus diatur ke nol.

Keterangan

Jika bV5Height negatif, menunjukkan DIB atas ke bawah, bV5Compression harus BI_RGB atau BI_BITFIELDS. DIB atas ke bawah tidak dapat dikompresi.

Antarmuka Manajemen Warna Independen (ICM) 2.0 memungkinkan profil warna International Color Consortium (ICC) ditautkan atau disematkan dalam DIB (DIB). Lihat Menggunakan Struktur untuk informasi selengkapnya.

Ketika DIB dimuat ke dalam memori, data profil (jika ada) harus mengikuti tabel warna, dan bV5ProfileData harus memberikan offset data profil dari awal struktur BITMAPV5HEADER . Nilai yang disimpan dalam bV5ProfileData akan berbeda dari nilai yang dikembalikan oleh operator sizeof mengingat argumen BITMAPV5HEADER , karena bV5ProfileData adalah offset dalam byte dari awal struktur BITMAPV5HEADER hingga awal data profil. (Bitmap bit tidak mengikuti tabel warna dalam memori). Aplikasi harus memodifikasi anggota bV5ProfileData setelah memuat DIB ke dalam memori.

Untuk DIB yang dikemas, data profil harus mengikuti bitmap bitmap yang mirip dengan format file. Anggota bV5ProfileData masih harus memberikan offset data profil dari awal BITMAPV5HEADER.

Aplikasi harus mengakses data profil hanya ketika bV5Size sama dengan ukuran BITMAPV5HEADER dan bV5CSType sama dengan PROFILE_EMBEDDED atau PROFILE_LINKED.

Jika profil ditautkan, jalur profil dapat menjadi nama yang sepenuhnya memenuhi syarat (termasuk jalur jaringan) yang dapat dibuka menggunakan fungsi CreateFile .

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

BITMAPV4HEADER

Struktur Bitmap

Gambaran Umum Bitmap

CIEXYZTRIPLE

CreateDIBitmap

LOGCOLORSPACE

StretchDIBits