Format File BMP
Format File
BMP
BMP
adalah format file gambar standar untuk sistem operasi Windows. Format file ini dikembangkan oleh Microsoft untuk menyimpan gambar (bitmap) dan memungkinkan Windows untuk menampilkan kembali gambar
tersebut. Struktur dari file BMP terdiri dari BitmapFileHeader yang mengandung informasi mengenail file, BitmapInfoHeader yang menyimpan informasi mengenai gambar (seperti
dimensi, warna dan lain – lain), tabel warna yang didefinisikan sebagai array dari struktur RGBQUAD, dan sisanya
adalah data gambar.
Tabel
berikut ini akan memperlihatkan informasi lengkap mengenai struktur file BMP
untuk gambar yang berukuran 100 x 100 piksel, 256 warna, dan tanpa kompresi. Kolom mulai berisi posisi byte di dalam file dimana elemen data dari struktur yang dijelaskan dimulai. Kolom
ukuran berisi jumlah byte yang
digunakan oleh elemen data tersebut. Kolom nama berisi nama dengan elemen data
sesuai dengan dokumentasi Microsoft API.
Kolom nilai standar berisi nilai standar yang mungkin terisi pada elemen data
tersebut. Kolom keterangan berisi penjelasan singkat mengenai elemen data yang
dimaksud.
Tabel 2.1 Struktur BitmapFileHeader
Mulai
|
Ukuran (Byte)
|
Nama
|
Nilai Standar
|
Keterangan
|
1
|
2
|
BfType
|
19778
|
ASCII = ‘BM’.
|
3
|
4
|
BfSize
|
?
|
Ukuran file dalam byte.
|
7
|
2
|
BfReserved1
|
0
|
Tidak digunakan.
|
9
|
2
|
BfReserved2
|
0
|
Tidak digunakan.
|
11
|
4
|
BfOffBits
|
1078
|
Posisi byte dimana data gambar berada
|
Tabel 2.2 Struktur BitmapInfoHeader
Mulai
|
Ukuran (Byte)
|
Nama
|
Nilai Standar
|
Keterangan
|
15
|
4
|
BiSize
|
40
|
Ukuran dari info header dalam byte
|
19
|
4
|
BiWidth
|
100
|
Lebar gambar dalam piksel
|
23
|
4
|
BiHeight
|
100
|
Tinggi gambar dalam piksel
|
27
|
2
|
BiPlanes
|
1
|
Jumlah bidang gambar
|
29
|
2
|
BiBitCount
|
8
|
Jumlah bit per piksel
|
31
|
4
|
BitCompression
|
0
|
Jenis kompresi
|
35
|
4
|
BiSizeImage
|
0
|
Ukuran data gambar
|
39
|
4
|
BiXPelsPerMeter
|
0
|
Resolusi horizontal dalam piksel
meter
|
43
|
4
|
BiYPelPerMeter
|
0
|
Resolusi vertical dalam piksel
meter
|
47
|
4
|
BiClrUsed
|
0
|
Jumlah warna yang digunakan
|
51
|
4
|
BiClrImportant
|
0
|
Jumlah warna penting
|
Jumlah warna yang terdapat pada
gambar ditentukan oleh BiBitCount.
Kemungkinan nilai untuk BiBitCount
adalah 1 (hitam/putih), 4 (16 warna), 8 (256 warna), dan 24 (16,7 juta warna).
Elemen data BiBitCount sekaligus
menentukan apakah pada file BMP
terdapat tabel warna atau tidak, sekaligus susunan dari tabel warnanya.
Untuk gambar 1 bit, tabel warna hanya berisi dua warna (biasanya hitam dan putih).
Jika setiap bit dari data gambar
bernilai 0 maka warna yang ditunjuknya adalah warna pertama di dalam tabel
warna. Jika setiap bit dari data
gambar bernilai 1 maka warna yang ditunjuknya adalah warna kedua yang terdapat
di dalam tabel warna.
Pada gambar 4 bit, tabel warnanya berisikan 16 warna. Setiap byte yang terdapat pada data gambar mewakili dua piksel. Byte-byte tersebut dibagi menjadi dua
bagian, masing – masing 4 bit. Bit – bit
tadi menunjukkan ke warna – warna yang terdapat pada tabel warna.
Pada gambar 8 bit, setiap byte mewakili satu piksel. Nilai dari
setiap byte tadi menunjuk ke salah
satu warna yang terdapat pada tabel warna yang di dalamnya berisi 256 warna.
Untuk gambar 24 bit, 3 byte digunakan
untuk mewakili satu piksel. Byte yang
pertama mewakili unsur warna merah, byte
yang kedua mewakili unsur warna hijau, dan byte
ketiga mewakili unsure warna biru. Pada gambar 24 bit, tabel warna tidak dibutuhkan karena setiap piksel mengandung
unsur warna merah, hijau dan biru yang sebenarnya.
Tabel warna sendiri dibentuk dari
struktur RGBQUAD yang disusun dalam bentuk array.
Struktur dari RGHQUAD dapat dilihat pada tabel dibawah ini.
Tabel 2.3 Struktur
RGBQUAD
Mulai
|
Ukuran (Byte)
|
Nama
|
Nilai Standar
|
Keterangan
|
1
|
1
|
RGBBlue
|
?
|
Intensitas warna biru
|
2
|
1
|
RGBGreen
|
?
|
Intensitas warna hijau
|
3
|
1
|
RGBBlue
|
?
|
Intensitas warna merah
|
4
|
1
|
RGBReserved
|
0
|
Tidak digunakan
|