Dekoder Imej Base64 | Dekod & Pratonton Imej Dalam Talian
Alat dekoder imej base64 dalam talian percuma. Dekod dan pratonton segera rentetan base64 sebagai imej JPEG, PNG, GIF, WebP, atau SVG. Berfungsi dengan URL data dan base64 mentah.
Dekoder dan Pemapar Imej Base64
Tampal rentetan imej berkod base64 dan dekodkan untuk melihat imej.
Pratonton Imej
Tiada imej untuk dipaparkan. Tampal rentetan base64 untuk melihatnya didekod secara automatik.
Menyokong format imej JPEG, PNG, GIF dan format biasa yang lain.
Arahan
1. Tampal rentetan imej berkod base64 dalam kawasan teks di atas.
2. Imej akan didekod secara automatik semasa anda menaip, atau klik butang 'Dekod Imej'.
3. Imej yang didekod akan muncul dalam kawasan pratonton di bawah.
Nota: Rentetan sepatutnya bermula dengan 'data:image/' untuk keputusan terbaik, tetapi alat ini akan cuba mendekod rentetan tanpa awalan ini juga.
Dokumentasi
Apakah penyahkod imej base64?
Penyahkod imej base64 ialah alat yang menukar rentetan teks berkod base64 kembali menjadi gambar. Base64 ialah cara menulis data binari, seperti bait fail imej, dengan hanya menggunakan 64 aksara teks biasa (huruf, digit, +, / dan = sebagai pelapik). Pelayar, e-mel dan banyak API menyimpan imej dengan cara ini supaya gambar boleh dihantar dalam teks biasa, bukan sebagai fail berasingan. Penyahkod membalikkan proses itu: tampalkan rentetan tersebut, lalu imej asal dipaparkan.
Format URL data
Di web, imej base64 biasanya ditulis sebagai URL data. Coraknya ialah:
1data:[<media type>];base64,<data>
2Contohnya:
1data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==
2Setiap bahagian mempunyai fungsi:
data:menandakan bahawa ia ialah URL data, bukan alamat web biasa.image/pngialah jenis MIME yang memberitahu pelayar jenis fail ini.;base64menyatakan bahawa data selepas koma dikodkan dalam base64.- Segala-galanya selepas koma ialah imej yang telah dikodkan itu sendiri.
Cara penyahkod berfungsi
Penyahkodan berlaku dalam empat langkah.
- Alat ini memeriksa sama ada rentetan bermula dengan
data:. URL data yang menamakan jenis media selain imej, sepertidata:text/plain, ditolak serta-merta kerana ia tidak mungkin dipaparkan sebagai gambar. - Ia membuang semua ruang, tab atau pemisah baris kerana rentetan base64 yang panjang kadangkala dibahagikan kepada beberapa baris. Muatan yang menggunakan pengekodan peratus dan bukannya base64, yang turut dibenarkan oleh RFC 2397, diteruskan tanpa perubahan.
- Ia menyahkod teks base64 kembali menjadi bait mentah.
- Ia meneliti beberapa bait pertama hasil tersebut. Setiap format imej lazim bermula dengan jujukan bait tetap yang disebut tandatangan atau “nombor magik”. Fail PNG bermula dengan
89 50 4E 47, fail JPEG bermula denganFF D8 FFdan seterusnya. Penyahkod memadankan tandatangan ini lalu melabelkan imej dengan jenis yang dikenal pasti.
Bait mengatasi label. Jika URL data menyatakan data:image/png tetapi bait bermula dengan FF D8 FF, penyahkod membina semula URL sebagai data:image/jpeg supaya rentetan yang ditawarkan oleh butang “Salin URL Imej” tidak pernah tersalah menerangkan kandungannya sendiri.
Jika rentetan itu tidak mempunyai awalan data:, penyahkod menganggapnya sebagai data base64 mentah, menyahkodnya dan membaca tandatangan dengan cara yang sama. Jika bait tidak sepadan dengan mana-mana tandatangan imej yang diketahui dan tidak kelihatan seperti teks SVG, penyahkod melaporkan bahawa rentetan itu nampaknya bukan imej. Ia tidak meneka format atau beralih kepada sebarang jenis lalai.
SVG dikendalikan secara berbeza kerana SVG ialah format teks (XML), bukannya binari, maka ia tidak mempunyai tandatangan bait tetap. Penyahkod memeriksa 1024 bait pertama teks yang dinyahkod untuk mencari tag <svg, pengisytiharan XML seperti <?xml version="1.0"?> yang diikuti oleh tag tersebut, atau pengisytiharan jenis dokumen SVG yang kemudiannya diikuti oleh tag tersebut. Tanda susunan bait pada permulaan sekali, yang ditambahkan oleh sesetengah penyunting pada fail UTF-8, diabaikan. Oleh sebab SVG tidak dapat dikenal pasti melalui tandatangan bait, URL data yang mengisytiharkan image/svg+xml mengekalkan jenis yang diisytiharkannya.
Formula saiz imej base64
Base64 menukar setiap 3 bait data binari menjadi 4 aksara teks. Formula untuk panjang yang dikodkan ialah:
1encoded_characters = 4 × ⌈original_bytes ÷ 3⌉
2Simbol ⌈ ⌉ bermaksud “bundarkan ke atas kepada nombor bulat seterusnya” kerana base64 sentiasa berfungsi dalam kumpulan 4 aksara dan melapik kumpulan yang berbaki dengan tanda =.
Bagi fail besar, ini menghasilkan peningkatan saiz kira-kira 33% kerana 4 ÷ 3 ≈ 1.33. Fail kecil boleh menunjukkan peningkatan peratusan yang lebih besar kerana pembundaran ke atas kepada kumpulan 4 aksara seterusnya lebih ketara apabila data asal tidak banyak.
Contoh pengiraan
Contoh PNG di atas dinyahkod menjadi 85 bait data imej. Dengan menggunakan formula:
14 × ⌈85 ÷ 3⌉ = 4 × 29 = 116
2Rentetan base64 itu sememangnya sepanjang 116 aksara, yang sepadan. Ini merupakan peningkatan sebanyak 36% berbanding 85 bait asal (116 ÷ 85 ≈ 1.36), sedikit melebihi angka 33% kerana fail itu sangat kecil.
Format imej yang disokong
Penyahkod membaca tandatangan bait data yang dinyahkod untuk mengenal pasti formatnya. Jenis yang dikenalinya ialah:
| Format | Jenis MIME | Tandatangan yang diperiksa |
|---|---|---|
| PNG | image/png | 89 50 4E 47 0D 0A 1A 0A |
| JPEG | image/jpeg | FF D8 FF |
| GIF | image/gif | GIF87a atau GIF89a |
| WebP | image/webp | RIFF, empat bait yang diabaikan, kemudian WEBPVP |
| BMP | image/bmp | BM |
| ICO / CUR | image/x-icon | 00 00 01 00 atau 00 00 02 00 |
| SVG | image/svg+xml | Tiada tandatangan; dikesan sebagai teks yang mengandungi tag <svg |
Cara menyahkod imej base64
- Salin rentetan base64, dengan atau tanpa awalan
data:image/..., daripada HTML, CSS, respons API atau e-mel. - Tampalkannya ke dalam kotak input.
- Imej dinyahkod secara automatik seketika selepas menaip berhenti, atau dengan menekan butang nyahkod.
- Imej yang dinyahkod dipaparkan dalam kawasan pratonton. URL datanya boleh disalin dengan butang “Salin URL Imej”, manakala imej itu sendiri boleh disimpan dengan mengklik kanan imej dalam pratonton dan memilih untuk menyimpan imej, kerana ia dipaparkan sebagai elemen imej biasa dalam pelayar.
Kegunaan lazim imej base64
- Menyemat dalam HTML, CSS atau JavaScript: meletakkan data imej terus dalam kod mengelakkan permintaan fail berasingan.
- Templat e-mel: sesetengah klien e-mel menyekat imej yang dipautkan dari luar secara lalai, tetapi imej base64 yang disematkan masih dipaparkan.
- Alat HTML satu fail: seluruh halaman, termasuk imejnya, boleh dihantar sebagai satu fail kendiri.
- Respons API: imej boleh dihantar dalam muatan JSON tanpa memerlukan titik akhir tersendiri.
- Latar belakang dan ikon CSS: ikon kecil kadangkala ditulis terus ke dalam helaian gaya sebagai URL data.
Pertukaran pilihan bagi imej base64
Pengekodan base64 mudah digunakan tetapi ada kosnya:
- Teks yang dikodkan kira-kira sepertiga lebih besar daripada fail asal.
- Pelayar tidak boleh menyimpan imej terbenam dalam cache seperti fail terpaut, maka imej itu dimuat turun semula setiap kali halaman atau helaian gaya yang mengandunginya dimuatkan.
- Pelayar perlu menyahkod teks base64 sebelum dapat memaparkan imej, dan ini memerlukan sedikit pemprosesan tambahan.
- Oleh sebab saiz meningkat dan cache tidak dapat digunakan, penyematan base64 sesuai untuk imej kecil seperti ikon dan logo ringkas. Foto yang lebih besar biasanya lebih baik disediakan sebagai fail imej biasa.
Soalan lazim
Apakah penyahkod imej base64?
Ia ialah alat yang menukar rentetan teks berkod base64 kembali menjadi imej yang boleh dilihat, seperti fail PNG, JPEG, GIF, WebP, BMP atau SVG.
Bagaimanakah cara menyahkod imej base64?
Tampalkan rentetan base64, dengan atau tanpa awalan data:image/..., ke dalam penyahkod. Alat itu akan membaca rentetan, menyahkodnya dan memaparkan imej yang terhasil.
Bolehkah rentetan base64 dinyahkod tanpa awalan URL data?
Ya. Penyahkod menganggapnya sebagai data base64 mentah, menyahkod baitnya dan membaca beberapa bait pertama untuk mengenal pasti format daripada tandatangannya, seperti PNG, JPEG, GIF, WebP, BMP atau ICO. SVG dikenal pasti dengan mencari tag <svg dalam teks yang dinyahkod. Jika tiada satu pun yang sepadan, penyahkod melaporkan bahawa rentetan itu nampaknya bukan imej, bukannya meneka format.
Mengapa imej base64 saya tidak dapat dinyahkod?
Tiga punca merangkumi kebanyakan kes. Rentetan itu mungkin mengandungi aksara di luar abjad base64 standard, iaitu A–Z, a–z, 0–9, +, / dan =; varian base64url yang digunakan dalam sesetengah token web pula menulis - dan _, dan tidak diterima. Rentetan itu mungkin terpotong di tengah, menyebabkan panjangnya satu lebih daripada gandaan empat, sesuatu yang tidak pernah berlaku pada rentetan base64 yang sah. Atau bait tersebut mungkin bukan daripada mana-mana format imej yang disokong. Kekurangan pelapik = semata-mata bukan masalah, dan ruang atau pemisah baris dibuang sebelum penyahkodan.
Adakah pengekodan base64 merupakan satu bentuk keselamatan atau penyulitan?
Tidak. Base64 hanyalah cara mewakili bait sebagai teks; ia tidak menyembunyikan apa-apa. Sesiapa sahaja boleh menyahkod rentetan base64 dalam beberapa saat dengan alat percuma, jadi ia tidak boleh digunakan untuk melindungi imej peribadi atau data lain.
Berapa besarkah peningkatan saiz rentetan base64 berbanding imej asal?
Kira-kira sepertiga lebih besar bagi fail yang lebih besar kerana setiap 3 bait data asal menjadi 4 aksara teks. Imej berukuran 100 KB menjadi kira-kira 133 KB selepas dikodkan. Imej kecil boleh menunjukkan peningkatan peratusan yang agak lebih tinggi disebabkan pembundaran.
Sejarah
Base64 berkembang daripada skim pengekodan yang dibina pada 1970an dan 1980an untuk menghantar data binari melalui sistem mel yang hanya mengendalikan teks biasa. Skim ini diformalkan untuk e-mel dalam RFC 989 (1987) dan kemudiannya RFC 1421. Penggunaannya untuk menyemat imej dalam halaman web menjadi mungkin selepas skema URL data: ditakrifkan dalam RFC 2397 (1998), dan menjadi lebih lazim pada pertengahan 2000an apabila pembangun mencari cara mengurangkan permintaan HTTP berasingan, khususnya pada sambungan mudah alih yang perlahan.