Initializing, please wait a moment

Gambar ke Base64: Sematkan di HTML/CSS vs Tautkan File Gambar

Tinjauan terakhir 2026-05-05. Konversi di browser dengan Image to Base64 atau tempelkan URL data yang ada ke Base64 to Image; keduanya berjalan di perangkat Anda tanpa unggah.

Jawaban 30 detik. Sematkan (tempelkan URL data base64 ke HTML / CSS) hanya ketika gambar di bawah sekitar 4 KB, digunakan pada satu atau dua halaman, dan tidak pernah diharapkan untuk berubah. Tautkan file gambar (<img src="..."> atau background:url(...) normal) untuk yang lainnya. Titik impas adalah biaya satu permintaan HTTP tambahan vs penalti ukuran 33% ditambah hilangnya cache.

Mengapa dua opsi ada sama sekali

File HTML atau CSS adalah format teks. Gambar (PNG, JPG, WebP, SVG-sebagai-biner) adalah biner. Untuk meletakkan gambar inline dalam file teks, Anda mengkodekan biner sebagai base64 (alfabet ASCII 64 karakter) dan membungkusnya dalam URL data:image/png;base64,.... Browser mendekode URL data dengan cepat dan memperlakukan hasilnya seolah-olah telah diambil. Alternatifnya adalah jalur file normal, yang diambil browser melalui HTTP dan di-cache secara independen.

Keduanya berfungsi. Tidak ada yang secara universal lebih baik. Keputusannya tentang ukuran, perilaku cache, dan seberapa sering gambar berubah.

Aturan keputusan (tabel keputusan)

Ukuran gambar (byte mentah)Digunakan kembali di...Kemungkinan berubah?Rekomendasi
di bawah 1 KBjumlah halaman berapa puntidakSematkan - biaya permintaan mendominasi
1-4 KBsatu atau dua halamantidakSematkan jika Anda tidak dapat multiplex HTTP/2; tautkan jika Anda bisa
1-4 KB3+ halamantidakTautkan - satu file yang di-cache mengalahkan N salinan inline
4-50 KBapa punapa punTautkan - penalti inline berarti
di atas 50 KBapa punapa punTautkan - inline memblokir parsing dan membengkakkan setiap halaman yang menyertakan CSS / HTML
ukuran apa punSVG digunakan sebagai mask atau background CSStidakSematkan SVG sebagai URL data (SVG mode teks; tidak perlu base64) untuk gradien dan mask CSS bebas IE

Titik impas di sisi permintaan berasal dari berapa banyak byte yang dikenakan oleh satu permintaan HTTP. Pada HTTP/2 melalui koneksi hangat, itu kira-kira satu round-trip ditambah beberapa ratus byte header. Pada HTTP/1.1 dengan koneksi dingin, biayanya dapat mencapai RTT penuh ditambah TLS ditambah penyiapan koneksi - beberapa KB setara. Pedoman "sematkan di bawah 4 KB" mengasumsikan HTTP/1.1; pada HTTP/2 titik impas bergeser ke sekitar 1 KB.

Apa yang Anda lepaskan dengan menyematkan

  • Cache browser. Gambar yang ditautkan diambil sekali dan disajikan dari cache untuk setiap halaman berikutnya. URL data yang disematkan di-parse ulang dan didekode ulang untuk setiap halaman yang menyertakan CSS / HTML host. File HOST di-cache, tetapi biaya mendekode URL data dibayar pada setiap render halaman.
  • Pembaruan independen. Gambar yang ditautkan dapat diganti tanpa men-deploy ulang HTML atau CSS. URL data yang disematkan dikirim dengan file host, jadi memperbarui gambar berarti men-deploy ulang setiap halaman yang mengirim CSS itu.
  • Overhead pengkodean 33%. Tiga byte biner menjadi empat byte base64. PNG 4 KB menjadi ~5,4 KB inline. Pada widget satu halaman ini adalah kebisingan; di seratus penggunaan ulang ini menumpuk.
  • Fleksibilitas CDN. Gambar yang ditautkan dapat dilayani dari CDN gambar terpisah, ditransformasikan dengan cepat, atau diganti dengan WebP / AVIF berdasarkan header Accept. Base64 yang disematkan dibekukan pada waktu build.

Apa yang Anda lepaskan dengan menautkan (kasus untuk menyematkan)

  • Satu permintaan tambahan. Pada HTTP/1.1 dengan koneksi dingin ini bisa 50-200 ms; pada HTTP/2 lebih dekat ke satu RTT plus beberapa ratus byte. Untuk ikon di atas-lipatan yang kritis ini bisa menjadi perbedaan antara kilatan konten tanpa gaya dan pengecatan pertama yang bersih.
  • Gambar tubuh email. Klien email sangat bervariasi dalam menangani gambar eksternal; banyak yang memblokir secara default untuk privasi. Gambar yang dilampirkan CID atau base64-inline dirender dengan dapat diprediksi. (Sebagian besar klien email masih lebih memilih CID daripada base64 di tubuh, tetapi base64 di bagian MIME adalah mekanisme dasarnya.)
  • Snapshot mandiri. Satu file HTML dengan gambar yang disematkan adalah snapshot lengkap - berguna untuk laporan, dokumen yang diarsipkan, demo file-tunggal, dan ekspor ".eml". Gambar yang ditautkan memerlukan jalur untuk terus bekerja; yang disematkan tidak.

Pemeriksaan kewarasan 30 detik

Buka file yang akan Anda kirim di editor teks dan lihat string data:image/...;base64,. Tiga pemeriksaan cepat:

  1. Panjang. Jika string yang dikodekan lebih dari ~6.000 karakter (≈ 4 KB mentah), jangan sematkan. Tautkan file sebagai gantinya.
  2. Jumlah penggunaan ulang. Cari di codebase untuk string yang persis. Jika URL data yang sama muncul di 3+ file, Anda membayar penalti pengkodean 3+ kali. Tautkan.
  3. Volatilitas. Jika gambar adalah logo, avatar placeholder, atau apa pun yang "tim desain mungkin sesuaikan bulan depan", tautkan. Menyematkan membekukan gambar pada waktu build.

Dua-dari-tiga jawaban "sematkan" berarti sematkan. Dua-dari-tiga jawaban "tautkan" berarti tautkan. Satu-dan-satu biasanya tanda bahwa jawaban yang tepat tergantung pada sistem di sekitarnya - versi HTTP, pipeline build, setup CDN.

Pertanyaan yang sering diajukan

Apakah base64 mengenkripsi gambar?

Tidak. Base64 adalah pengkodean, bukan enkripsi. Siapa pun yang melihat URL data dapat menempelkannya ke decoder (atau Base64 to Image situs ini) dan mendapatkan kembali byte asli. Jika gambar sensitif, jangan letakkan di file HTML / CSS publik terlepas dari pengkodean.

Bisakah saya menyematkan JPG dan PNG dengan pengkodean yang sama?

Ya - pengkodean tidak bergantung pada konten. Gunakan data:image/png;base64,... untuk PNG, data:image/jpeg;base64,... untuk JPG, data:image/webp;base64,... untuk WebP. Awalan MIME memberi tahu browser cara mendekode, bukan jenis biner apa yang dikandung base64.

Bagaimana dengan SVG - apakah saya butuh base64 untuk itu?

Tidak. SVG sudah berupa teks. Anda dapat meletakkannya dalam URL data sebagai data:image/svg+xml;utf8,... dengan XML SVG inline (URL-encode # dan <); base64 opsional dan sedikit lebih besar. Untuk SVG background CSS kecil bentuk mode-teks lebih bersih.

Akankah Google mengindeks gambar yang saya sematkan sebagai base64?

Umumnya tidak - mesin pencari lebih menyukai URL gambar yang dapat mereka crawl, cache, dan peringkat secara independen. Jika Anda ingin gambar ditemukan di Image Search, tautkan sebagai file normal. Jika gambar bersifat dekoratif (ikon, pembagi, affordance UI tanpa konten semantik), menyematkan baik-baik saja.

Seberapa besar string yang dikodekan dibandingkan dengan file?

Ukuran terkodekan = ⌈byte input / 3⌉ × 4. Gambar 1 KB menjadi ~1,36 KB terkodekan; gambar 10 KB menjadi ~13,4 KB terkodekan. Overhead 33% tepat untuk input yang panjangnya kelipatan 3 dan beberapa byte lebih untuk yang lain (padding "=" trailing).

Apakah HTTP/2 mengubah jawaban?

Ya - HTTP/2 multiplexes banyak permintaan kecil melalui satu koneksi, jadi biaya per-permintaan turun tajam. Pedoman "sematkan di bawah 4 KB" bergeser ke "sematkan di bawah 1 KB" di HTTP/2; di atasnya, tautkan file. HTTP/3 (QUIC) serupa.

Terkait

  • Image to Base64 - konversi file gambar ke URL data di browser. Gunakan ini ketika Anda ingin menyematkan.
  • Base64 to Image - tempelkan URL data dan unduh gambar. Gunakan ini ketika Anda ingin mengekstrak gambar yang disematkan ke file biasa.
  • Base64 kapan menggunakan dan kapan tidak - panduan pendamping yang lebih luas yang mencakup email MIME, JSON, parameter URL, dan kasus di mana base64 adalah alat yang salah sepenuhnya.
  • Image Tools - semua utilitas gambar (kompres, konversi, potong, ubah ukuran) di freetoolonline.com.

Why trust these tools

  • Ten-plus years of web tooling. The freetoolonline editorial team has shipped browser-based utilities since 2015. The goal has never changed: get you to a working output fast, without an install.
  • Truly in-browser - no upload. Every file-processing tool on this site runs in your browser through modern Web APIs (File, FileReader, Canvas, Web Audio, WebGL, Web Workers). Your photo, PDF, audio, or text never leaves your device.
  • No tracking during tool use. Analytics ends at the page view. The actual input you paste, drop, or capture is never sent to any server and never written to any log.
  • Open-source core components. The processing engines underneath (libheif, libde265, pdf-lib, terser, clean-css, ffmpeg.wasm, and others) are public and audit-able. We link to each one in its tool page's footer.
  • Free, with or without ads. All tools are fully functional without sign-up. The Disable Ads button in the header is always available if you need a distraction-free run.