Nasıl kullanılır
- Bir .bmp dosyasını bırakma alanına sürükleyin, seçmek için tıklayın veya bir görsel yapıştırın.
- Kayıpsız ve çok daha küçük bir sonuç için "Hedef biçim" olarak PNG'yi seçin ya da alıcı sistem BMP gerektiriyorsa "Orijinal biçimi koru" seçeneğini kullanın.
- Kazancı görmek için orijinal boyutu Base64 boyutuyla karşılaştırın.
- Sonucu data URI, ham Base64, img etiketi, CSS kuralı veya Markdown görseli olarak kopyalayın ya da indirin.
BMP dosyası nedir?
BMP, Windows'un aygıttan bağımsız bitmap biçimidir. Pikselleri satır satır, neredeyse her zaman sıkıştırmadan saklar (4 bit ve 8 bit görseller için basit bir run-length kodlama modu vardır). MIME türü image/bmp olsa da bazı sistemler image/x-ms-bmp bildirir; Base64 çıktısı ise BM harflerinin kodlanmış hâli olan Qk ile başlar.
Sıkıştırma olmadığından dosya boyutu doğrudan piksel ölçülerine bağlıdır. 800 x 600 piksellik 24 bit bir görsel yaklaşık 1,4 MB yer kaplar ve Base64 karşılığı 1,9 MB'a yakın metin tutar.
Kodlamadan önce PNG'ye dönüştürün
PNG de kayıpsız bir biçimdir; bu nedenle PNG'ye dönüştürülen tipik bir 24 bit bitmap, pikselleri tamamen aynı kalırken çoğu zaman birkaç kat, ekran görüntüleri ve düz renkli grafiklerde ise çok daha fazla küçülür. BMP olarak kaydedilmiş fotoğraflar için iyi kalitede JPEG veya WebP daha da kısa bir dize verir. Her görsel için gösterilen orijinal ve Base64 boyutları, farkı kolayca görmenizi sağlar.
Orijinal BMP ne zaman korunmalı
Bazı alıcılar gerçek bir bitmap bekler: eski Windows yazılımları, etiket ve fiş yazıcıları, mikrodenetleyicilerle sürülen küçük ekranlar veya bir dosyayla bayt bayt eşleşmesi gereken test verileri. Bu durumlarda dönüştürme yapmayın ("Orijinal biçimi koru"); Base64 çıktısı o zaman dosyanın birebir kopyası olur. Tüm büyük tarayıcılar data:image/bmp görsellerini gösterebilir, ancak web sayfaları ve e-posta için PNG daha iyi bir biçimdir.
Aynı dönüştürme, Python ve Pillow kullanan bir betikte şöyle yapılır:
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()
Sıkça sorulan sorular
BMP Base64 dizem neden bu kadar uzun?
BMP her pikseli sıkıştırmadan saklar ve Base64 bunun üzerine üçte bir daha ekler. Önce PNG'ye dönüştürmek, hiçbir ayrıntı kaybetmeden dizeyi genellikle büyük ölçüde kısaltır.
BMP'yi PNG'ye dönüştürmek kaliteyi düşürür mü?
Hayır. PNG kayıpsız bir biçimdir, bu yüzden pikseller aynı kalır. Yalnızca piksellerin saklanma şekli değişir.
Tarayıcılar data:image/bmp URI'sini gösterebilir mi?
Evet; Chrome, Edge, Firefox ve Safari'nin tümü BMP'yi gösterir. E-posta istemcileri ve birçok çevrimiçi platform ise bu biçimi daha az güvenilir şekilde işler; bu yüzden oralarda PNG daha güvenli bir seçimdir.
BMP saydamlığı destekler mi?
32 bit bir BMP alfa kanalı saklayabilir, ancak programlar ve tarayıcılar bunu tutarsız şekilde işler. Saydamlığa ihtiyacınız varsa PNG'ye veya WebP'ye dönüştürün.