Konverter BMP ke Base64

Enkode file bitmap Windows (.bmp) sebagai Base64. Karena BMP biasanya tidak dikompresi, Anda dapat mengonversinya ke PNG, JPEG, atau WebP terlebih dahulu untuk hasil yang jauh lebih pendek.

Berjalan sepenuhnya di browser Anda. Tidak ada yang diunggah.

Cara menggunakan

  1. Seret file .bmp ke area seret-lepas, klik untuk memilih file, atau tempel gambar.
  2. Pilih PNG di Konversi ke untuk hasil yang lossless dan jauh lebih kecil, atau pertahankan BMP jika sistem penerima memerlukannya.
  3. Bandingkan ukuran asli dengan ukuran hasil enkode untuk melihat penghematannya.
  4. Salin atau unduh hasilnya sebagai data URI, Base64 mentah, tag img, aturan CSS, atau gambar Markdown.

Apa itu file BMP?

BMP adalah format bitmap independen perangkat (device-independent bitmap) milik Windows. Format ini menyimpan piksel baris demi baris, hampir selalu tanpa kompresi (ada mode run-length sederhana untuk gambar 4 bit dan 8 bit). Tipe MIME-nya image/bmp, meskipun beberapa sistem melaporkan image/x-ms-bmp, dan keluaran Base64-nya diawali dengan Qk, yaitu huruf BM yang sudah dienkode.

Tanpa kompresi, ukuran file langsung ditentukan oleh dimensinya. Gambar 24 bit berukuran 800 kali 600 piksel memerlukan sekitar 1,4 MB, dan Base64-nya mendekati 1,9 MB teks.

Konversi ke PNG sebelum dienkode

PNG juga lossless, sehingga bitmap 24 bit biasa yang dikonversi ke PNG mempertahankan pikselnya dengan persis sementara filenya menyusut, sering kali beberapa kali lipat, dan jauh lebih banyak lagi untuk tangkapan layar dan grafik datar. Untuk foto yang disimpan sebagai BMP, JPEG atau WebP dengan kualitas yang baik menghasilkan string yang lebih pendek lagi. Ukuran asli dan ukuran hasil enkode yang ditampilkan untuk setiap gambar membuat perbedaannya mudah terlihat.

Kapan mempertahankan BMP asli

Sebagian penerima mengharapkan bitmap sungguhan: perangkat lunak Windows lama, printer label dan struk, layar kecil yang dikendalikan mikrokontroler, atau fixture pengujian yang harus cocok dengan file byte demi byte. Dalam kasus seperti itu, jangan aktifkan konversi; keluaran Base64 kemudian merupakan salinan persis dari file tersebut. Semua browser utama dapat menampilkan gambar data:image/bmp, tetapi untuk halaman web dan email, PNG adalah format yang lebih baik.

Konversi yang sama dalam skrip, menggunakan Python dan Pillow:

from PIL import Image
import base64, io

buf = io.BytesIO()
Image.open('scan.bmp').save(buf, 'PNG')
uri = 'data:image/png;base64,' + base64.b64encode(buf.getvalue()).decode()

Pertanyaan yang sering diajukan

Mengapa string Base64 BMP saya sangat panjang?

BMP menyimpan setiap piksel tanpa kompresi, dan Base64 menambahkan sepertiga lagi di atasnya. Mengonversi ke PNG terlebih dahulu biasanya memperpendek string secara drastis tanpa kehilangan detail apa pun.

Apakah konversi BMP ke PNG menurunkan kualitas?

Tidak. PNG adalah format lossless, jadi pikselnya tetap sama. Hanya cara penyimpanannya yang berubah.

Bisakah browser menampilkan URI data:image/bmp?

Bisa, Chrome, Edge, Firefox, dan Safari semuanya menampilkan BMP. Klien email dan banyak platform online menanganinya dengan kurang andal, jadi PNG adalah pilihan yang lebih aman di sana.

Apakah BMP mendukung transparansi?

BMP 32 bit dapat menyimpan kanal alfa, tetapi program dan browser memperlakukannya secara tidak konsisten. Jika Anda memerlukan transparansi, konversi ke PNG atau WebP.