Format data BMP (bitmap). Bagaimana cara membuka file .BMP? Cara membuka file bmp di windows 7

Artikel ini membahas tentang seperti apa format grafik bmp. Meskipun ini adalah salah satu format yang lebih sederhana, karena banyaknya variasi format ini, tidak semua poin terlihat jelas. Jadi, berhentilah menuangkan air, mari kita mulai.

Struktur format

Format bmp (dari kata BitMaP - bit map, atau, dalam bahasa Rusia, bit array) adalah gambar tidak terkompresi (kebanyakan) yang cukup mudah dibaca dan ditampilkan di OS Windows, yang memiliki fungsi API khusus yang membantu.

Pertama, mari kita berikan representasi grafis dari data dalam bmp (gambar diambil dari MSDN).

Pada awalnya ada file header (BITMAPFILEHEADER). Hal ini dijelaskan sebagai berikut:

tipe bf menentukan jenis file. Di sini dia seharusnya menjadi BM. Jika Anda membuka file BMP apa pun dalam editor teks (atau lebih baik lagi, dalam editor heksadesimal), Anda akan melihat bahwa dua karakter pertama adalah BM (dari kata BitMap, seperti yang mungkin sudah Anda duga).
ukuran bf adalah ukuran file itu sendiri dalam byte. Sebenarnya, Anda harus menghitungnya (yang disarankan), tetapi saya salah mengatur ukuran file (meskipun tidak sengaja :)) dan tidak ada masalah (ACDSee membaca tanpa masalah, program saya berfungsi), tetapi saya tidak menyarankan Anda salah menulisnya , tiba-tiba akan muncul program teliti yang akan membandingkan ukuran ini dengan yang asli dan memutuskan bahwa itu bukan bmp, tetapi sesuatu yang lain. Idealnya, semua program, untuk memastikan bahwa itu adalah bmp asli dan bukan palsu, pertama-tama harus memeriksa apakah bfType berisi "BM" (tanpa tanda kutip), dan kedua, apakah bfSize sama dengan ukuran file.
bfReserved1 dan bfReserved2 dicadangkan dan harus nol.
bfOffBits. Ini adalah salah satu bidang terpenting dalam struktur ini. Ini menunjukkan di mana bitmap itu sendiri dimulai relatif terhadap awal file (atau, seperti yang tertulis di MSDN, "dari awal struktur BITMAPFILEHEADER"), yang menjelaskan gambar tersebut. Artinya, untuk menjamin sampai ke awal array, Anda harus menulis:

tag struct typedefBITMAPINFOHEADER
{
Ukuran DWORD;
Lebar dua PANJANG;
dua tinggi;
Biplan KATA;
KATA biBitCount;
Kompresi DWORD;
DWORD biSizeImage;
biXPelsPerMeter PANJANG;
biYPelsPerMeter PANJANG;
DWORD biClrDigunakan;
DWORD biClrPenting;
) BITMAPINFOHEADER, * PBITMAPINFOHEADER;

ukuran besar adalah ukuran struktur itu sendiri. Ini perlu diinisialisasi sebagai berikut: bih.biSize = sizeof(BITMAPINFOHEADER);
Di sini sekali lagi kita asumsikan bahwa bih dideklarasikan sebagai berikut: BITMAPINFOHEADER bih;
duaLebar dan duaTinggi atur lebar dan tinggi gambar masing-masing dalam piksel.
biplan menentukan jumlah pesawat. Untuk saat ini selalu disetel ke 1.
biBitCount- Jumlah bit per piksel. Kami akan membicarakan ini lebih lanjut di bawah.
bikompresi menunjukkan jenis kompresi. Jangan kaget atau takut jika bmp tiba-tiba mengalami kompresi. Saya pribadi belum melihat lebih dari satu bmp terkompresi (tetapi saya tidak mengatakan bahwa bmp tersebut tidak ada). Jika tidak ada kompresi, maka flag ini harus disetel ke BI_RGB. Pada artikel ini kita berbicara tentang format tidak terkompresi, jadi saya bahkan tidak akan mencantumkan tanda lainnya. Tampaknya struktur yang sama digunakan pada file JPEG dan PNG, karena mulai dari Windows 98 muncul opsi BI_JPEG yang menunjukkan bahwa gambar ini adalah JPEG dan BI_PNG, bahwa itu PNG (Saya tidak tahu apa-apa tentang format JPEG, Saya baru saja membuat kesimpulan ini berdasarkan apa yang tertulis di MSDN).
biSizeImage menunjukkan ukuran gambar dalam byte. Jika gambar tidak terkompresi (yaitu, kolom sebelumnya disetel ke BI_RGB), maka angka nol harus ditulis di sini. biXPelsPerMeter Dan biYPelsPerMeter menunjukkan, masing-masing, resolusi horizontal dan vertikal (dalam piksel per meter) dari perangkat akhir yang menjadi keluaran bitmap (raster). Sebuah aplikasi dapat menggunakan nilai ini untuk memilih bitmap yang paling sesuai dari sekelompok sumber daya untuk perangkat yang diinginkan. Faktanya adalah bahwa format bmp pada dasarnya adalah raster yang tidak bergantung pada perangkat keras, yaitu, ketika tampilan yang diperoleh tidak bergantung pada apa (bisa dikatakan) raster ini diproyeksikan. Misalnya, sebuah gambar akan terlihat sama terlepas dari apakah gambar itu digambar di layar monitor atau dicetak di printer. Tetapi resolusi perangkat berbeda, dan parameter ini digunakan untuk memilih gambar yang paling sesuai dari gambar yang tersedia.
biClrDigunakan menentukan jumlah warna yang digunakan dari tabel. Jika nilai ini nol, maka raster menggunakan jumlah warna maksimum yang diperbolehkan oleh nilai biBitCount. Ini hanya relevan untuk gambar terkompresi. Jika biClrUsed bukan nol dan biBitCount kurang dari 16, maka biClrUsed menentukan jumlah warna mesin grafis atau driver perangkat yang tersedia saat ini. Jika biBitCount lebih besar atau sama dengan 16, maka biClrUsed menentukan ukuran tabel warna yang digunakan untuk mengoptimalkan palet sistem saat ini.
biClrPenting- ini adalah jumlah warna penting. Menentukan jumlah warna yang dibutuhkan untuk menggambarkan gambar. Jika nilainya 0 (seperti biasanya), maka semua warna dianggap penting.

Jenis format BMP

Semua jenis format bmp secara kondisional dapat dibagi menjadi dua jenis: palet dan non-palet. Artinya, apakah palet digunakan dalam format tertentu atau tidak. Harap dicatat bahwa palet bahkan bisa dalam format bebas palet, tetapi tidak digunakan di sana. Pada bmps bebas palet, warna dihitung langsung dari bit yang masuk ke dalam file, dimulai dari tempat tertentu. Dan dalam palet, setiap byte menggambarkan satu atau lebih piksel, dan nilai byte (atau bit) adalah indeks warna dalam palet. Untuk memulainya, saya akan memberikan tabel yang membandingkan opsi yang memungkinkan. Jenis gambar (palet atau bebas palet) bergantung pada berapa banyak bit yang diberikan per piksel, yaitu pada nilai biBitCount dari struktur BITMAPINFOHEADER.

biBitCountFormat palet atau non-paletJumlah warna maksimum yang mungkinCatatan 1 Palet2 Gambar palet dua warna, ingat, belum tentu hitam dan putih. Jika bit raster (yang tepat di bawah) disetel ulang (sama dengan 0), berarti warna pertama dari palet harus ada di tempat ini, dan jika disetel (sama dengan 1), maka warna kedua. 4 Palet16 Setiap byte menjelaskan 2 piksel. Berikut adalah contoh dari MSDN. Jika byte pertama pada gambar adalah 0x1F, maka itu sesuai dengan dua piksel, warna yang pertama adalah warna kedua dari palet (karena hitungan mundur dimulai dari nol), dan piksel kedua adalah warna kedua dari palet. warna palet ke-16. 8 Palet256 Salah satu opsi paling umum. Tapi pada saat yang sama, yang paling sederhana. Paletnya memakan satu kilobyte (tapi lebih baik tidak mengandalkannya). Satu byte adalah satu warna. Apalagi nilainya adalah nomor warna di palet. 16 Tidak ada palet2^16 atau 2^15Ini adalah pilihan yang paling membingungkan. Mari kita mulai dengan fakta bahwa ini bebas palet, yaitu, setiap dua byte (satu kata WORD) dalam raster secara unik mendefinisikan satu piksel. Tapi inilah yang terjadi: ada 16 bit, dan ada 3 komponen warna (Merah, Hijau, Biru). Tapi 16 tidak mau dibagi 3. Oleh karena itu ada dua pilihan di sini. Yang pertama adalah menggunakan 15 bit, bukan 16, lalu ada 5 bit untuk setiap komponen warna. Dengan cara ini kita dapat menggunakan maksimal 2^15 = 32768 warna dan mendapatkan triple R-G-B = 5-5-5. Tapi kemudian sebagian dari 16 terbuang sia-sia. Tapi kebetulan mata kita, di antara semua warna, melihat warna hijau lebih baik, jadi kami memutuskan untuk memberikan sedikit ini pada komponen hijau, yaitu, lalu kami mendapatkan komponen hijau. triple R-G-B = 5-6-5, dan sekarang kita dapat menggunakan 2^16 = 65536 warna. Namun hal yang paling tidak menyenangkan adalah kedua opsi tersebut digunakan. MSDN menyarankan agar untuk membedakan berapa banyak warna yang digunakan, isi kolom biClrUsed dari struktur BITMAPINFOHEADER dengan nilai ini. Untuk memilih setiap komponen, Anda perlu menggunakan masker berikut. Untuk format 5-5-5: 0x001F untuk komponen biru, 0x03E0 untuk hijau, dan 0x7C00 untuk merah. Untuk format 5-6-5: masing-masing 0x001F - biru, 0x07E0 - hijau, dan 0xF800 merah. 24 Tidak ada palet2^24 Dan ini adalah format paling sederhana. Di sini 3 byte mendefinisikan 3 komponen warna. Artinya, satu komponen per byte. Kita cukup membaca struktur RGBTRIPLE dan menggunakan kolom rgbtBlue, rgbtGreen, rgbtRed. Mereka masuk dalam urutan itu. 32 Tidak ada palet2^32 Di sini 4 byte mendefinisikan 3 komponen. Namun, satu byte tidak digunakan. Bisa digunakan misalnya untuk saluran alpha (transparansi). Dalam hal ini, akan lebih mudah untuk membaca raster menggunakan struktur RGBQUAD, yang dijelaskan sebagai berikut:

Penyimpanan data dalam format bmp

Nah, sekarang kita sampai pada bagian yang paling menarik. Setelah struktur BITMAPFILEHEADER dan BITMAPINFOHEADER muncullah palet. Terlebih lagi, jika formatnya bebas palet, maka format tersebut mungkin tidak ada, namun Anda tidak boleh mengandalkannya. Faktanya ketika saya baru mulai memahami format bmp, saya membaca di salah satu buku yang konon jika formatnya bebas palet, maka tidak ada palet sama sekali. Bahkan ada dua gambar - diagram format: satu dengan palet, yang lain tanpa palet. Dan saat itu saya sedang menulis sebuah program yang rajin mengoperasikan file bmp. Dan saya harus mengonversi gambar yang masuk dari 256 warna ke 24-bit (jika ada) menjadi file sementara. Dan saya sama sekali tidak membuat palet dalam 24-bit (bfOffBits dari struktur BITMAPFILEHEADER sama dengan jumlah sizeof(BITMAPFILEHEADER) + sizeof (BITMAPINFOHEADER), dan membiarkan 24-bit yang masuk tidak berubah. Dengan raster 256 warna semuanya berfungsi sebagaimana mestinya, sampai saya tidak menemukan gambar 24-bit yang menampilkan sampah di bagian bawah, bukan di bagian yang diperlukan. Saya tidak langsung mengerti apa yang salah sampai saya membandingkan ukuran file asli dengan teoritis yang seharusnya ada jika tidak ada palet. Perbedaannya ternyata tepat 1 KB. 1024 byte). Oleh karena itu, jangan pernah mengandalkan apakah ada palet dan jangan mengandalkan ukurannya (walaupun semua gambar yang saya temukan memiliki ukuran palet 256 warna, atau 1Kb), selalu pindahkan file ke awal raster, menggunakan bfOffBits. Palet adalah larik struktur RGBQUAD satu demi satu tidak semua warna digunakan dalam palet (tetapi hanya, misalnya, 16), maka seringkali 256 bidang dialokasikan untuk palet A 256 * 4 = 1024, di mana 4 adalah ukuran struktur RGBQUAD, yaitu sama satu kilobyte diperoleh.

Segera setelah palet muncul raster itu sendiri. Di sinilah segalanya menjadi lebih membingungkan. Pertama, piksel di sini dijelaskan seperti yang tertulis pada tabel di atas, bergantung pada formatnya. Dan mereka sendiri dapat berisi nilai komponen warna (untuk yang bebas palet), atau dapat berupa indeks dari array palet. Gambar itu sendiri direkam baris demi baris. Kedua, gambarnya tampak terbalik. Artinya, baris terbawah ditulis terlebih dahulu, kemudian baris kedua dari belakang, dan seterusnya hingga baris paling atas. Dan yang ketiga, seperti yang tertulis, jika ukuran garis raster bukan kelipatan 4, maka diisi dengan 1 sampai 3 byte kosong (nol) sehingga panjang garis tersebut merupakan kelipatan paragraf. Ini adalah hal yang paling tidak menyenangkan. Faktanya adalah bahwa untuk setiap format Anda harus menyesuaikan jumlah byte kosong ini (walaupun saya suka menulis bagian dari palet di sana, saya hanya tidak ingin membuat variabel "nol" tambahan jika byte ini tetap dilewati dan tidak ada seorang pun membutuhkannya). Saya menyediakan tabel dengan rumus yang menunjukkan format berapa byte yang harus ditambahkan di akhir baris. Di sana, variabel Lebar, seperti yang Anda duga, berarti lebar gambar. Semua formula ini dibuat secara eksperimental. Saya akan memberikan contoh hanya untuk format yang paling sering digunakan. Selebihnya, Anda bisa menulisnya sendiri.

Contoh program

Anda dapat mengunduh semua sumbernya. Saya tidak akan menulis banyak di sini. Saya hanya akan memberikan fungsinya dengan komentar.

Halo 1. Membuat gambar dalam format bmp.
Di sini gambar monokromatik tercipta. Ada tiga contoh fungsi tersebut: membuat bmp 8, 16 dan 24 bit. Saya akan memberikan hanya untuk 16-bit.

// Mari kita membuat gambar dalam format bmp 16 bit seperti 5-5-5, yang akan menjadi monokromatik
void CreateBmp555(char * fname, warna KATA)
{
MENANGANI hFile;
DWORD RW;
ke dalam aku, j;

// Deklarasikan struktur yang diperlukan
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
Palet BYTE[1024]; // Palet

// Mari kita punya gambar berukuran 35 x 50 piksel
int Lebar = 35;
int Tinggi = 50;

memset(Palet, 0, 1024); // Di palet kita punya angka nol, isi saja
memset(&bfh, 0 , ukuran(bfh) ) ;

Bfh.bfType = 0x4D42 ; // Mari kita nyatakan bahwa ini adalah bmp "BM"
bfh.bfOffBits = ukuran (bfh) + ukuran (bih) + 1024 ; // Paletnya memakan 1Kb, tapi kami tidak akan menggunakannya
bfh.bfSize = bfh.bfOffBits +
sizeof(warna) * Lebar * Tinggi +
Tinggi * ((ukuran (warna) * Lebar) % 4 ) ; // Hitung ukuran file akhir
memset(&bih, 0 , ukuran(bih) ) ;
bih.biSize = ukuran(bih); // Memang seharusnya begitu
bih.biBitCount = 16 ; // 16 bit per piksel
bih.biClrDigunakan = 32768 ; // Kita menggunakan 5-5-5
bih.biKompresi = BI_RGB; // Tanpa kompresi
bih.biTinggi = Tinggi;
bih.biWidth = Lebar;
bih.biPesawat = 1 ; // Seharusnya 1
// Dan kolom sisanya tetap 0

HFile = CreateFile(fname, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
jika (hFile == INVALID_HANDLE_VALUE)
kembali ;

// Tulis headernya
WriteFile (hFile, & bfh, sizeof (bfh) , & RW, NULL ) ;
WriteFile (hFile, & bih, sizeof (bih) , & RW, NULL ) ;

// Tulis paletnya
WriteFile(hFile, Palet, 1024, &RW, NULL);
untuk (saya = 0 ; saya< Height; i++ )
{
untuk (j = 0 ; j< Width; j++ )
{
WriteFile (hFile, & warna, sizeof (warna) , & RW, NULL ) ;
}

// Sejajarkan dengan batas
WriteFile (hFile, Palette, (sizeof (warna) * Lebar) % 4 , & RW, NULL ) ;
}
CloseHandle(hFile) ;
}

warna - warna gambar. Nilai variabel ini harus diisi sesuai tabel pertama. Anda dapat melihat gambar yang dihasilkan di ACDSee, misalnya. Saya baru mencoba membukanya di Photoshop, tapi ternyata tidak bisa membacanya dalam format ini. Tapi Anda bisa :).

Contoh 2. Mengubah gambar dari format 8-bit (256 warna) menjadi 24-bit.

BOOL Convert256To24 (char * fin, char * fout)
{
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
int Lebar, Tinggi;
Palet RGBQUAD[ 256 ] ;
BYTE * diBuf;
RGBTRIPLE * keluarBuf;
TANGANI hIn, hOut;
DWORD RW;
DWORD OffBits;
ke dalam aku, j;

HIn = BuatFile (sirip, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL) ;
jika (jam == INVALID_HANDLE_VALUE)
kembali SALAH;

HOut = CreateFile(fout, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
jika (hKeluar == INVALID_HANDLE_VALUE)
{
CloseHandle(hIn);
kembali SALAH;
}

// Baca datanya
ReadFile (hIn, & bfh, sizeof (bfh) , & RW, NULL ) ;
ReadFile (hIn, & bih, sizeof (bih) , & RW, NULL ) ;
ReadFile (hIn, Palette, 256 * sizeof (RGBQUAD) , & RW, NULL ) ;

// Menyetel penunjuk ke awal raster
SetFilePointer (hIn, bfh.bfOffBits, NULL, FILE_BEGIN) ;
Lebar = bih.biLebar ;
Tinggi = bih.biTinggi ;
OffBits = bfh.bfOffBits ;

// Alokasikan memori
inBuf = BYTE baru [ Lebar ] ;
outBuf = RGBTRIPLE baru [ Lebar ] ;

// Isi headernya
bfh.bfOffBits = ukuran (bfh) + ukuran (bih) ; // Mari kita tidak menulis palet
bih.biBitCount = 24 ;
bfh.bfSize = bfh.bfOffBits + 4 * Lebar * Tinggi + Tinggi * (Lebar % 4 ) ; // Ukuran file

// Dan sisanya tetap tidak berubah
// Tulis headernya
WriteFile (hOut, & bfh, sizeof (bfh) , & RW, NULL ) ;
WriteFile (hOut, & bih, sizeof (bih) , & RW, NULL ) ;

// Ayo mulai berkonversi
untuk (saya = 0 ; saya< Height; i++ )
{
ReadFile(hIn, inBuf, Lebar, & RW, NULL);
untuk (j = 0 ; j< Width; j++ )
{
outBuf[ j].rgbtRed = Palet[ inBuf[ j] ] .rgbRed ;
outBuf[ j].rgbtGreen = Palet[ inBuf[ j] ] .rgbGreen ;
outBuf[ j].rgbtBlue = Palet[ inBuf[ j] ] .rgbBlue ;
}
WriteFile (hOut, outBuf, sizeof (RGBTRIPLE) * Lebar, & RW, NULL ) ;

// Tulis sampah untuk penyelarasan
WriteFile (hOut, Palet, Lebar % 4 , & RW, NULL ) ;
SetFilePointer(hIn, (3 * Lebar) % 4, NULL, FILE_CURRENT) ;
}

hapus inBuf;
hapus keluarBuf;
CloseHandle(hIn);
CloseHandle(jamKeluar);
kembali BENAR;
}

Nama file sumber dan tujuan harus diteruskan ke fungsi masing-masing.

Penyebab paling umum dari masalah saat membuka file BMP hanyalah kurangnya aplikasi yang sesuai yang terinstal di komputer Anda. Dalam hal ini, cukup mencari, mengunduh, dan menginstal aplikasi yang menyajikan file dalam format BMP - program tersebut tersedia di bawah.

Sistem pencarian

Masukkan ekstensi file

Membantu

Petunjuk

Harap dicatat bahwa beberapa data yang dikodekan dari file yang tidak dapat dibaca oleh komputer kita terkadang dapat dilihat di Notepad. Dengan cara ini kita akan membaca potongan teks atau angka - Perlu diperiksa apakah metode ini juga berfungsi dalam kasus file BMP.

Apa yang harus dilakukan jika aplikasi dari daftar sudah diinstal?

Seringkali aplikasi yang diinstal secara otomatis tertaut ke file BMP. Jika hal ini tidak terjadi, maka file BMP berhasil dikaitkan secara manual dengan aplikasi yang baru diinstal. Cukup klik kanan pada file BMP, lalu dari daftar yang tersedia pilih opsi "Pilih program default". Maka Anda perlu memilih opsi “Lihat” dan temukan aplikasi favorit Anda. Perubahan yang dimasukkan harus disetujui menggunakan opsi "OK".

Program yang membuka file BMP

jendela
macOS

Mengapa saya tidak bisa membuka file BMP?

Masalah pada file BMP juga bisa disebabkan oleh hal lain. Terkadang bahkan menginstal perangkat lunak di komputer Anda yang mendukung file BMP tidak akan menyelesaikan masalah. Alasan ketidakmampuan untuk membuka dan bekerja dengan file BMP mungkin juga karena:

Asosiasi file BMP yang tidak pantas dalam entri registri
- kerusakan pada file BMP yang kita buka
- Infeksi file BMP (virus)
- sumber daya komputer terlalu sedikit
- driver ketinggalan jaman
- menghapus ekstensi BMP dari registri Windows
- instalasi program yang mendukung ekstensi BMP tidak lengkap

Memperbaiki masalah ini akan menghasilkan kebebasan membuka dan bekerja dengan file BMP. Jika komputer Anda masih mengalami masalah file, Anda perlu bantuan ahli yang akan menentukan penyebab pastinya.

Komputer saya tidak menampilkan ekstensi file, apa yang harus saya lakukan?

Dalam pengaturan sistem Windows standar, pengguna komputer tidak melihat ekstensi file BMP. Ini berhasil diubah di pengaturan. Buka saja "Panel Kontrol" dan pilih "Tampilan dan Personalisasi". Maka Anda harus pergi ke "Opsi Folder" dan membuka "Lihat". Di tab "Tampilan" ada opsi "Sembunyikan ekstensi jenis file yang dikenal" - Anda harus memilih opsi ini dan mengonfirmasi operasi dengan mengklik tombol "OK". Pada titik ini, ekstensi semua file, termasuk BMP, akan muncul diurutkan berdasarkan nama file.

Pengumuman

Format file gambar BMP Raster

BMP (file bitmap, format file bitmap yang tidak bergantung pada perangkat) adalah file bitmap yang digunakan untuk menyimpan gambar bitmap digital secara terpisah dari perangkat tampilan. Jenis file ini sebelumnya digunakan di Microsoft Windows dan OS/2. Istilah "raster" berasal dari gagasan programmer tentang bitmap. Gambar BMP biasanya tidak terkompresi atau terkompresi lossless (misalnya, menggunakan ZIP atau RAR - karena adanya data berlebihan dalam file). Saat ini, JPG adalah format gambar yang disukai - terutama karena ukuran file BMP yang besar, yang dapat menyebabkan masalah atau penundaan saat mengunduh, mengirim, atau mengunggah file.

Informasi teknis tentang file BMP

File BMP disimpan sebagai gambar 2D dengan berbagai ukuran, warna, dan kedalaman warna tanpa kompresi data, profil warna, atau saluran alfa. Gambar BMP disimpan dalam format bitmap yang tidak bergantung pada perangkat (DIB), artinya gambar memiliki warna, bukan spesifikasi sistem. Hal ini menjelaskan mengapa beberapa gambar BMP terlihat berbeda pada komputer yang berbeda. Gambar BMP dapat dilihat di perangkat apa pun, termasuk layar komputer dan televisi. Kurangnya paten telah membuat jenis gambar ini menjadi format yang populer untuk berbagai perangkat.

Informasi tambahan tentang format BMP

Kami harap kami membantu Anda menyelesaikan masalah Anda dengan file BMP. Jika Anda tidak tahu di mana Anda dapat mengunduh aplikasi dari daftar kami, klik tautannya (ini adalah nama programnya) - Anda akan menemukan informasi lebih rinci tentang tempat mengunduh versi instalasi aman dari aplikasi yang diperlukan.

Apa lagi yang bisa menimbulkan masalah?

Mungkin ada lebih banyak alasan mengapa Anda tidak dapat membuka file BMP (bukan hanya karena kurangnya aplikasi yang sesuai).
Pertama- File BMP mungkin salah ditautkan (tidak kompatibel) dengan aplikasi pendukung yang diinstal. Dalam hal ini, Anda perlu mengubah sendiri koneksi ini. Caranya, klik kanan pada file BMP yang ingin Anda edit, klik opsi "Untuk membuka dengan" lalu pilih program yang Anda instal dari daftar. Setelah tindakan ini, masalah dengan pembukaan file BMP akan hilang sepenuhnya.
Kedua- file yang ingin Anda buka mungkin rusak. Dalam hal ini, yang terbaik adalah mencari versi baru, atau mengunduhnya lagi dari sumber yang sama (mungkin karena alasan tertentu di sesi sebelumnya pengunduhan file BMP tidak selesai dan tidak dapat dibuka dengan benar) .

Apakah Anda ingin membantu?

Jika Anda memiliki informasi tambahan tentang ekstensi file BMP, kami akan berterima kasih jika Anda membagikannya kepada pengguna situs kami. Gunakan formulir yang ada dan kirimkan informasi Anda tentang file BMP kepada kami.

Sangat sering, ketika bekerja dengan grafik, banyak pengguna menemukan gambar dalam format BMP. Saat ini, hanya sedikit orang yang tahu apa itu. Sekarang kita akan melihat format grafik BMP lebih detail. Selain itu, kami tidak hanya akan menelusuri sejarah asal usul dan evolusinya, tetapi juga menawarkan beberapa metode sederhana untuk mengonversinya ke format populer lainnya.

Apa itu format BMP?

Jangan membahas terlalu banyak detail teknis. Perhatikan bahwa BMP adalah format untuk menyimpan gambar grafik dalam bentuk bitmap berdasarkan raster lapisan tunggal.

Ya, ini benar. Awalnya, format gambar BMP diterapkan secara eksklusif pada gambar raster dan merupakan ekstensi universal (standar) untuk semua grafik secara umum.

Sejarah asal usul

Sejarah penciptaan format ini terkait erat dengan Microsoft Corporation, yang pertama kali mengimplementasikannya dalam gagasan utamanya - sistem operasi Windows. Selain itu, meskipun persaingan terus-menerus dengan Apple, dukungan untuk jenis grafis ini kemudian diumumkan untuk sistem operasi OS/2.

Benar, sejak saat itu format grafik BMP telah mengalami banyak perubahan. Awalnya diasumsikan bahwa struktur suatu gambar dibangun di atas kombinasi kotak-kotak kecil, yang sekarang dikenal sebagai piksel. Dipercaya bahwa setiap piksel dalam suatu gambar dapat berisi data tentang kedalaman warna yang berbeda (jumlah bit per unit grafis tersebut). Nilai yang digunakan untuk menunjukkan kedalaman bit warna adalah sebagai berikut: 1, 2, 4, 8, 16, 24, 32, 48, 64 bit.

Dalam hal ini, untuk nilai kurang dari 8, warna ditunjukkan hanya menggunakan indeks palet (tabel) warna, dan untuk nilai di atas indeks diambil dari model RGB standar. Yang terakhir berisi variasi warna yang diperoleh dengan mencampurkan merah, hijau dan biru.

Seperti yang sudah jelas, semakin tinggi kedalaman bitnya, semakin besar ukuran gambar akhirnya. Harus dikatakan bahwa format file BMP, baik dulu maupun sekarang, terlihat seperti mastodon, karena ukurannya yang cukup besar. Hal ini disebabkan oleh fakta bahwa gambar itu sendiri tidak terkompresi, dibandingkan dengan, katakanlah, format JPG yang sama. Ukuran file dengan berbagai jenis ekstensi yang berisi gambar yang sama bisa berbeda tidak hanya ratusan - puluhan ribu kali lipat.

Bagaimana cara membuka format file BMP?

Sedangkan untuk membuka gambar jenis ini, sistem operasi Windows mana pun memiliki alat bawaan untuk ini.

Hingga aplikasi penampil dibuat, alat pengeditan utama tetap berupa program Paint asli yang disertakan dengan versi Windows apa pun. Saat itu, aplikasi ini secara eksklusif mendukung format BMP.

Seperti yang sudah jelas, seiring berkembangnya teknologi dan berkembangnya format itu sendiri, program pun ikut berubah. Saat ini, kemampuan Paint jauh lebih besar dibandingkan versi awalnya.

Selain itu, dengan munculnya program untuk melihat dan mengedit grafik, format file BMP diumumkan di dukungan teknis dan di dalamnya. Hal ini tidak mengherankan, karena dialah yang merupakan “kakek buyut” dari hampir semua ekstensi file gambar yang dikenal saat ini.

Anda dapat menemukan banyak program untuk bekerja dengan data grafis tersebut. Di antara alat penampil, misalnya di Windows, Anda dapat menggunakan alat standar; di antara aplikasi pihak ketiga, paket perangkat lunak seperti ACDSee atau Irfan View dan banyak lainnya cukup populer.

Sedangkan untuk pengeditan, Anda dapat menggunakan apa saja untuk bekerja, misalnya Adobe Photoshop, Corel Draw, atau editor grafis lainnya yang sama yang bahkan memiliki seperangkat alat dan kemampuan minimal.

Cara paling sederhana untuk mengkonversi format BMP

Sekarang mari kita lihat cara mengubah format BMP dengan cara paling sederhana. Untuk melakukan ini, Anda dapat menggunakan editor grafis yang sama.

Jika kita mengambil aplikasi Paint standar sebagai contoh, pertama-tama file BMP yang diinginkan dibuka di dalamnya, setelah itu perintah "Save As..." dipilih dari menu "File", di mana di root, di baris paling bawah (menu tarik-turun), Anda dapat menemukan format yang didukung.

Sebenarnya, di editor grafis lainnya, teknologi untuk mengonversi bitmap serupa dengan yang dijelaskan di atas. Dalam beberapa aplikasi, Anda juga dapat menemukan perintah ekspor, yang, pada prinsipnya, tidak terlalu berbeda, karena ketika menggunakannya, seluruh prosedur kembali bermuara pada memilih format grafik lain yang didukung selain BMP asli.

Menggunakan konverter

Salah satu cara termudah untuk mengonversi berbagai jenis gambar ke format BMP, belum lagi menggunakan alat standar Windows dan editor grafis, adalah dengan menggunakan konverter khusus yang bekerja secara otomatis.

Semuanya sederhana di sini. Pengguna menambahkan file grafik untuk dikonversi ke jendela program, kemudian memilih format akhir (dalam hal ini BMP) dan menekan tombol untuk memulai proses konversi. File akhir dalam bentuk baru akan disimpan di folder yang lokasinya diatur secara default di aplikasi atau ditentukan secara manual.

Omong-omong, hal yang sama berlaku untuk proses sebaliknya, ketika Anda perlu mengonversi format BMP ke format lain.

Dengan banyaknya program di bidang ini di Internet, Anda dapat menemukan banyak sumber daya yang memungkinkan Anda melakukan transformasi tersebut secara online. Hanya dalam kasus ini, pengguna mengunggah file ke situs, memilih format akhir, dan kemudian mengunduh hasilnya ke komputernya. Setuju, dibandingkan dengan dua metode pertama, ini sangat tidak nyaman.

Kesimpulan

Itu saja yang dapat dikatakan secara singkat tentang format grafis BMP. Untuk alasan yang jelas, sisi teknis dari masalah dalam hal struktur file tidak dipertimbangkan. Data seperti itu sepertinya tidak akan memberi tahu apa pun kepada rata-rata pengguna.

Namun sebagai kesimpulan, saya ingin menambahkan beberapa kata tentang mengonversi file grafik ke format BMP yang tidak terkompresi. Tentu saja, versi saat ini membutuhkan lebih sedikit ruang disk. Namun ini masih berbeda dari tipe data terkompresi yang lebih modern. Pada prinsipnya, format BMP sendiri bahkan bisa dibilang agak ketinggalan jaman, karena saat ini hanya sedikit orang yang menggunakannya. Oleh karena itu, mengubah format terkompresi menjadi jenis file grafik dengan ekstensi .bmp tampaknya jelas tidak praktis pada tahap ini.

Ekstensi file .bmp
Kategori berkas
Contoh berkas (2,7 MiB)
(487,85 KiB)
Program terkait Adobe Photoshop
MS Cat
Editor Foto Microsoft
Kuas