Windows Bitmap (.bmp)
Arsitektur StandarBitmap Image File (BMP) adalah format grafis raster dasar yang independen dari perangkat dan dibuat oleh Microsoft. Format ini menyimpan baris pindai tanpa kompresi atau dengan kompresi RLE, serta kompatibel langsung dengan framebuffer perangkat keras.
Konversi BMP ke PNG
Konverter BMP ke PNG gratis yang berjalan di peramban. Konversikan berkas secara instan di perangkat Anda.
Pemeriksaan & Metadata
Sistem operasi dan penganalisis file mengenali file BMP dengan memeriksa urutan byte biner di bagian awal:
Tanda Tangan Header per Byte (Byte Penanda)
Sistem operasi dan penganalisis file mengenali file BMP dengan memeriksa urutan byte biner di bagian awal:
TANDA TANGAN HEX (OFFSET 0):
42 4DREPRESENTASI ASCII: BM
Standardisasi: Arsitektur Device-Independent Bitmap (DIB) Microsoft Windows
Spesifikasi Teknis
| Arsitektur Kontainer | BITMAPFILEHEADER diikuti BITMAPINFOHEADER (DIB) dan larik piksel raster |
| Kompresi | Baris pindai mentah tanpa kompresi atau pengodean run-length BI_RLE8 / BI_RLE4 opsional |
| Urutan Byte | Little-Endian (urutan byte Intel x86) |
| Ruang Warna | RGB yang bergantung pada perangkat, sRGB (tersemat dalam BITMAPV5HEADER) |
| Saluran & Struktur | Monokrom 1-bit, palet 4-bit / 8-bit, RGB 16-bit / 24-bit, atau RGBA 32-bit |
| Dimensi Maksimum | 2.147.483.647 x 2.147.483.647 piksel (bilangan bulat bertanda 32-bit) |
| Transparansi | Masker alfa BGRA 32-bit didukung dalam format BITMAPV3HEADER dan V5HEADER modern |
| Streaming & Progresif | Tidak mendukung streaming; baris pindai disimpan terbalik (dari bawah ke atas), kecuali jika tingginya negatif |
Perbandingan Teknis BMP dengan Pesaing
| Atribut Teknis | BMP (Saat Ini) | PNG | TIFF | JPG |
|---|---|---|---|---|
| Mode Kompresi | Tidak terkompresi / RLE Minimal | Kompresi Deflate lossless; penghematan ukuran file bergantung pada konten gambar | Tidak terkompresi / LZW / Zip | DCT lossy (~90% lebih kecil) |
| Kecepatan Dekode | Penyalinan memori instan | Memerlukan dekompresi Deflate | Memerlukan dekompresi LZW/ZIP | Memerlukan perhitungan IDCT |
| Pengurutan Baris Pindai | Dari bawah ke atas (terbalik) | Dari atas ke bawah | Dari atas ke bawah / Strip | Blok MCU dari atas ke bawah |
| Kesesuaian Web | Sangat buruk (beban data membengkak) | Sangat baik untuk grafis | Buruk (penerbitan desktop) | Sangat baik untuk fotografi |
Pola Kerusakan Umum dan Panduan Pemulihan Hex
Gambar dirender miring secara diagonal atau condong pada suatu sudut.
Penyebab Utama: Perhitungan padding baris yang salah (setiap baris pindai tidak ditambahi padding hingga kelipatan 4 byte).
Pemulihan: Kodekan ulang dengan File2File.app Image Converter untuk memastikan stride baris pindai 32-bit yang benar.
Analisis Keamanan & Vektor Serangan Parser
Decoder BMP sering kali mengalami pembacaan berlebih pada penyangga saat mengalokasikan penyangga berdasarkan dimensi header DIB yang tidak tepercaya.
Vektor Serangan yang Diketahui
- Luapan bilangan bulat dalam perhitungan lebar * tinggi * bpp yang menyebabkan alokasi heap berukuran kecil dan penulisan di luar batas.
- Urutan pelarian panjang run (run-length escape sequences) RLE8/RLE4 yang rusak menyebabkan penulisan memori di luar penyangga yang dialokasikan.
- Penolakan layanan melalui alokasi memori beberapa gigabita yang dipicu oleh dimensi header yang dibuat khusus.
Praktik Terbaik Defensif: Validasikan secara ketat batas lebar, tinggi, dan kedalaman bit header DIB sebelum mengalokasikan memori tujuan.
Asal-Usul & Tonggak Sejarah
Keunggulan & Kelebihan Utama
- Tanpa degradasi kompresi: penyimpanan piksel yang tepat secara bit 100% tanpa artefak kompresi.
- Windows memiliki codec BMP bawaan, sedangkan dukungan di sistem operasi dan aplikasi lain bervariasi.
- Kompleksitas dekode yang sangat mudah menjadikannya ideal untuk mikrokontroler tersemat dan pendidikan pemrograman grafis.
Keterbatasan Teknis & Kekurangan
- Ukuran file yang sangat besar karena kurangnya kompresi entropi modern seperti DEFLATE atau pengodean Huffman.
- Tidak efisien untuk transmisi web atau distribusi jaringan seluler.
- Pengurutan baris pindai dari bawah ke atas memerlukan pembalikan baris vertikal dalam alur kerja grafis modern dari atas ke bawah.
Fakta Teknis Menarik
- BMP menyimpan baris pindai gambar secara terbalik (dari bawah ke atas) secara default karena sistem koordinat Kartesius matematis yang digunakan pada OS/2.
- Jika nilai tinggi (height) di header BMP disetel ke angka negatif, gambar akan didekode dengan orientasi tegak (dari atas ke bawah).
- Setiap baris pindai dalam file BMP harus diberi padding nol hingga panjangnya merupakan kelipatan 4 byte (penyelarasan batas 32-bit).
Pertanyaan Teknis yang Sering Diajukan
Mengapa file BMP berukuran sangat besar?
File BMP menyimpan nilai warna mentah tanpa kompresi untuk setiap piksel, sedangkan format seperti PNG mengompresi data tersebut tanpa kehilangan kualitas.
Bisakah BMP mendukung transparansi?
Ya. File BMP 32-bit (menggunakan BITMAPV3HEADER atau yang lebih baru) dapat menyimpan saluran alfa 8-bit, meskipun dukungannya bervariasi pada perangkat lunak yang lebih lama.
Bagaimana cara memperkecil ukuran file BMP?
Mengonversi berkas BMP ke PNG dapat mengurangi ukuran berkas sambil mempertahankan nilai piksel, tetapi hasilnya bergantung pada konten gambar dan encoding BMP.
Pasangan Konversi BMP Terkait
Mengonversi file Windows Bitmap yang tidak dikompresi ke PNG menghasilkan kompresi tanpa kehilangan yang mengecilkan ukuran file tanpa mengurangi kualitas gambar.
Mengonversi Portable Network Graphics ke Windows Bitmap mengubah data raster terkompresi menjadi susunan piksel tanpa kompresi untuk sistem operasi lama dan alur pemrosesan perangkat keras.
Tempatkan tangkapan layar BMP yang didukung pada satu halaman PDF untuk tiket atau laporan. Jalur ini menerima piksel 24-bit atau 32-bit yang tidak dikompresi, bukan varian BMP yang dikompresi.