Skip to content
Gambar ke Base64
Tools

Gambar ke Base64

Baru

Enkode gambar ke data URI Base64 dan dekode kembali menjadi gambar.

Runs entirely in your browser. Nothing is uploaded.

Konversi gambar ke Base64 secara online

Konverter Gambar ke Base64 gratis ini mengubah gambar apa pun menjadi string Base64 atau data URI langsung di browser Anda — tanpa upload, tanpa pendaftaran, tanpa perlu menginstal perangkat lunak. Seret dan lepas sebuah file, klik untuk memilih dari perangkat, tempel dari clipboard, atau muat gambar dari sebuah URL, dan Anda langsung mendapatkan string data:image/…;base64,… yang siap disalin, lengkap dengan snippet CSS, HTML, dan Markdown yang sesuai.

Alat ini bekerja dua arah: encode gambar menjadi Base64, atau berpindah tab untuk men-decode string Base64 kembali menjadi gambar yang bisa dilihat dan diunduh. Karena seluruh proses berjalan di sisi klien menggunakan API FileReader dan Canvas milik browser, gambar Anda tidak pernah meninggalkan perangkat — aman untuk logo privat, tangkapan layar, dan karya yang belum dipublikasikan. Ini sangat berbeda dengan alternatif populer seperti base64.guru dan base64encoder.io, yang mengunggah gambar Anda ke server jarak jauh untuk diproses.

Cara pakainya sederhana: 1. Seret gambar ke kotak unggah, klik untuk memilih file, tempel gambar, atau masukkan URL gambar. 2. Alat ini membaca file secara lokal dan langsung menghasilkan data URI Base64, sekaligus menampilkan ukuran asli, ukuran hasil encode, dan dimensi gambar. 3. Salin hasilnya dalam format yang Anda butuhkan — Base64 mentah, data URI lengkap, aturan CSS background-image, tag HTML <img>, atau Markdown — atau unduh sebagai file .txt. Untuk arah sebaliknya, buka tab Base64 → Gambar, tempel data URI atau string Base64 mentah, dan alat ini akan men-decode-nya, menampilkan pratinjau, serta menyediakan tombol unduh dengan ekstensi file yang benar.

Menyematkan gambar Base64 di HTML, CSS, Markdown, dan email

Data URI Base64 memungkinkan Anda menyematkan gambar langsung di dalam kode sebagai teks, alih-alih menautkan ke file terpisah. Di HTML, letakkan string tersebut pada atribut src tag gambar; di CSS, letakkan di dalam url("…") untuk background; di Markdown, gunakan sintaks gambar ![alt](data:image/png;base64,…). Cara ini menghilangkan satu permintaan HTTP tambahan — sangat berguna untuk ikon kecil, halaman satu file, dan demo offline.

Penyematan seperti ini sangat umum pada email HTML, di mana membundel gambar ke dalam pesan menghindari tautan rusak dan permintaan «unduh gambar» — meski beberapa klien seperti Outlook dapat memblokir gambar Base64, jadi selalu uji terlebih dahulu. Pengembang juga menyimpan gambar Base64 berukuran kecil di dalam payload JSON, database, dan file konfigurasi ketika file biner akan merepotkan.

Perlu diketahui, perilaku klien email sangat beragam. Outlook 2007–2019 menggunakan mesin render Microsoft Word alih-alih mesin browser sungguhan, dan mesin itu tidak mendukung data URI — gambar inline Base64 sama sekali tidak akan tampil. Gmail mem-proxy gambar eksternal melalui server Google (untuk menyaring tracking pixel), tetapi mendukung gambar Base64 inline pada email HTML. Apple Mail mendukung data URI sepenuhnya. Untuk email HTML yang andal, pendekatan yang direkomendasikan adalah Content-ID (CID) embedding — melampirkan gambar sebagai bagian MIME dan mereferensikannya dengan src="cid:image1". Namun untuk dokumen HTML satu file (struk, ekspor laporan, pratinjau), Base64 tetap satu-satunya cara membundel gambar. Untuk kampanye email massal lewat penyedia seperti Mailchimp atau SendGrid, lebih baik host gambar di CDN dan tautkan saja.

Gambar ke Base64 di JavaScript dan Python

Di JavaScript, browser mengerjakannya untuk Anda: const r = new FileReader(); r.onload = () => use(r.result); r.readAsDataURL(file); menghasilkan data URI lengkap. Di React, bungkus kode ini dalam handler onChange pada input file; di Next.js Anda juga bisa meng-encode gambar di sisi server dengan Buffer.from(bytes).toString('base64') milik Node. Konverter ini memakai persis API FileReader tersebut, jadi apa yang Anda salin sama dengan hasil kode Anda sendiri.

Di Python, encode byte mentahnya dengan modul base64: base64.b64encode(open('image.png','rb').read()).decode(), lalu tambahkan prefiks data:image/png;base64,. Dengan Pillow (PIL), simpan gambar ke buffer BytesIO terlebih dahulu lalu encode isinya ke Base64. Gunakan alat ini untuk memverifikasi output Anda dengan cepat tanpa perlu menjalankan skrip.

Perbandingan: UtiloKit vs base64.guru, base64encoder.io, browserling

base64.guru adalah salah satu alat Base64 paling banyak dikunjungi di internet, tetapi ia mengunggah gambar Anda ke servernya — masalah privasi serius untuk logo, mockup produk, atau dokumen rahasia. base64encoder.io bekerja serupa, memproses file di sisi server. Alat image-to-Base64 milik Browserling juga berjalan di server dan membatasi pengguna gratis berdasarkan ukuran file (batas 75 MB pada paket gratis) serta jumlah konversi harian.

UtiloKit berjalan sepenuhnya di browser Anda tanpa batasan ukuran file selain kapasitas RAM perangkat, tanpa batas harian, dan tanpa data yang meninggalkan mesin Anda. Anda mendapatkan output yang sama — data URI yang valid — plus snippet tambahan (CSS, HTML, Markdown) yang tidak disediakan alat-alat di atas. Bagi tim yang bekerja dengan aset kepemilikan, perbedaan privasinya signifikan: tidak ada server yang pernah melihat gambar Anda.

Kapan sebaiknya memakai Base64 — dan kapan tidak

Base64 sempurna untuk aset kecil yang jarang berubah, tetapi bukannya tanpa biaya: teks hasil encode kira-kira 33% lebih besar dari file aslinya, dan gambar yang disematkan tidak bisa di-cache atau di-lazy-load secara terpisah. Untuk foto besar atau gambar yang dipakai ulang di banyak halaman, file gambar biasa (dengan caching HTTP) akan dimuat lebih cepat. Sebagai patokan, sematkan ikon dan logo kecil di bawah ~10 KB, dan biarkan yang lebih besar sebagai file standar.

Pada era HTTP/1.1, browser membatasi koneksi bersamaan ke satu domain (biasanya 6), sehingga setiap file gambar tambahan menghabiskan slot koneksi berharga dan menambah latensi handshake TCP serta lookup DNS. Menyematkan gambar kecil sebagai data URI menghapus round-trip itu sepenuhnya. Alasan ini melemah jauh dengan hadirnya HTTP/2, yang melakukan multipleks semua permintaan lewat satu koneksi — overhead per file yang dulu membuat banyak gambar eksternal kecil terasa lambat praktis hilang.

Batas panjang data URI pada browser juga pernah bervariasi: Internet Explorer 8 membatasinya di 32 KB. Browser modern — Chrome, Firefox, Safari, Edge — tidak menetapkan batas praktis terdokumentasi, tetapi data URI yang sangat panjang (gambar multi-megabyte) tetap dapat memengaruhi performa parser HTML karena seluruh string harus dibaca dan di-decode secara sinkron. Lebih penting lagi, karena data URI adalah bagian dari dokumen HTML atau CSS, ia tidak di-cache secara independen: setiap pemuatan halaman mengirim ulang dan men-decode ulang gambar tersebut. Pedoman performa yang diterima luas adalah hanya menyematkan gambar di bawah kurang lebih 4 KB — ambang di mana overhead permintaan HTTP melebihi penalti ukuran 33% dari Base64. Build tool seperti webpack, Vite, dan Next.js memakai heuristik yang sama: aset di bawah batas yang dikonfigurasi (sering 4–8 KB) disematkan otomatis, sisanya dikeluarkan sebagai file terpisah.

Bagaimana encoding Base64 bekerja

Encoding Base64 mengambil data biner dalam kelompok 3 byte (24 bit) dan meng-encode ulang setiap kelompok menjadi 4 karakter ASCII — 6 bit per karakter — dari alfabet 64 karakter: huruf besar A–Z, huruf kecil a–z, angka 0–9, plus + dan /. Jika panjang input bukan kelipatan 3, satu atau dua karakter padding = ditambahkan agar output selalu kelipatan 4 karakter. Proses mekanis ini didefinisikan dalam RFC 4648, standar yang sama yang digunakan oleh TLS, MIME, dan autentikasi HTTP Basic.

Teknik ini lahir untuk memecahkan masalah nyata: server email SMTP generasi awal dirancang hanya untuk membawa teks ASCII 7-bit. File biner seperti gambar berisi seluruh 256 nilai byte, dan banyak di antaranya dirusak atau dibuang diam-diam oleh router SMTP. Base64 mengubah byte sembarang itu menjadi subset ASCII cetak yang dilewatkan utuh oleh setiap relay email. Biayanya adalah kenaikan ukuran 33% yang bisa diprediksi — setiap 3 byte biner menjadi 4 karakter, sehingga PNG 12 KB ter-encode menjadi teks sekitar 16 KB.

Varian yang berkerabat dekat bernama Base64URL (juga didefinisikan di RFC 4648) mengganti + dengan - dan / dengan _, serta menghilangkan padding = di akhir. Hasilnya aman dipakai di URL dan nama file tanpa percent-encoding. Token JWT dan banyak API web memakai Base64URL; Base64 standar (dengan + dan /) dipakai di dalam data URI karena pemisah , sudah memisahkannya dari deklarasi tipe MIME sebelumnya.

Data URI — spesifikasi lengkapnya

Data URI didefinisikan oleh RFC 2397 dan mengikuti format data:[<mediatype>][;base64],<data>. Bagian mediatype adalah tipe MIME standar seperti image/png, image/jpeg, image/svg+xml, atau image/webp. Jika dihilangkan, nilai bakunya adalah text/plain;charset=US-ASCII. Untuk data berbasis teks Anda juga bisa menentukan charset — misalnya data:text/html;charset=utf-8,<h1>Hello</h1> — sehingga potongan HTML utuh atau stylesheet CSS pun bisa disematkan sebagai data URI.

SVG adalah kasus khusus yang layak diketahui: karena SVG adalah teks berbasis XML, ia bisa disematkan dalam data URI tanpa encoding Base64 sama sekali, memakai URL encoding — data:image/svg+xml,%3Csvg …%3E. SVG dengan URL encoding biasanya lebih kecil daripada SVG Base64 karena Base64 menambah overhead 33%, sementara URL encoding hanya memperluas karakter khusus. Browser modern menerima kedua bentuk, tetapi SVG Base64 didukung secara universal, termasuk pada klien email lawas dan Internet Explorer.

Begitu browser menemukan data URI pada img src, url() CSS, atau iframe src, ia memperlakukannya persis seperti resource yang diambil dari URL eksternal: mem-parsing tipe MIME, men-decode datanya, dan meneruskan hasilnya ke renderer yang sesuai. Tidak ada permintaan jaringan tambahan yang dibuat. Baik Anda meng-encode gambar ke string Base64, men-decode Base64 kembali ke gambar, atau sekadar memeriksa sebuah data URI, alat ini cepat, privat, dan sepenuhnya gratis — setiap konversi tetap berada di perangkat Anda, dan bekerja di iPhone, iPad, Android, serta semua browser desktop modern tanpa instalasi apa pun.

Frequently asked questions

Bagaimana cara mengonversi gambar ke Base64?

Seret gambar ke kotak di atas, klik untuk memilih file, tempel dari clipboard, atau muat dari sebuah URL. Alat ini langsung mengonversi gambar menjadi string Base64 dan menampilkan data URI siap pakai yang bisa Anda salin sebagai CSS, HTML, atau Markdown. Semuanya terjadi di browser Anda — gambar tidak pernah diunggah ke server mana pun, sehingga aman untuk gambar privat atau sensitif.

Bagaimana cara mengonversi Base64 kembali menjadi gambar?

Buka tab Base64 → Gambar lalu tempel sebuah data URI (data:image/png;base64,…) atau string Base64 mentah. Alat ini men-decode-nya, menampilkan pratinjau gambar, dan memungkinkan Anda mengunduhnya sebagai file. Formatnya terdeteksi otomatis, jadi PNG, JPG, SVG, WebP, dan GIF semuanya berfungsi. Proses decode sepenuhnya berjalan lokal di browser — tidak ada permintaan ke server dan string Base64 Anda tidak pernah dikirim ke mana pun.

Bagaimana cara menyematkan gambar Base64 di HTML?

Gunakan data URI Base64 sebagai src pada tag img: tempelkan string ter-encode ke src="data:image/png;base64,…". Klik «Copy <img>» di atas untuk mendapatkan tag gambar lengkap yang siap ditempel tanpa permintaan file terpisah — ideal untuk email, halaman satu file, dan ikon inline. Cara ini menghilangkan satu round-trip HTTP tambahan dan tetap berfungsi meski file gambar aslinya tidak tersedia.

Bagaimana cara memakai gambar Base64 di CSS?

Referensikan data URI di dalam url() — misalnya background-image: url("data:image/png;base64,…"). Klik «Copy CSS» di atas untuk mendapatkan aturan background-image lengkap. Menyematkan background dan ikon kecil dengan cara ini menghapus satu permintaan HTTP dan lazim dipakai untuk ikon design system, spinner loader, dan elemen dekoratif yang jarang berubah. Ini juga membuat demo HTML satu file benar-benar mandiri.

Bagaimana cara mengonversi gambar ke Base64 di JavaScript?

Di browser, baca file dengan API FileReader: const reader = new FileReader(); reader.onload = () => console.log(reader.result); reader.readAsDataURL(file). Nilai reader.result adalah URI data:image/...;base64 lengkap. Di React atau Next.js, panggil kode ini di dalam useEffect atau handler onChange pada elemen input. Konverter ini memakai pendekatan yang persis sama, sepenuhnya di sisi klien. Anda bisa memakai hasilnya di sini untuk memverifikasi implementasi JavaScript Anda dengan cepat tanpa menyiapkan server lokal.

Bagaimana cara mengonversi gambar ke Base64 di Python?

Buka file dalam mode biner lalu encode: import base64; data = base64.b64encode(open('image.png', 'rb').read()).decode(); uri = f'data:image/png;base64,{data}'. Dengan PIL/Pillow Anda bisa menyimpan gambar ke buffer BytesIO terlebih dahulu, lalu meng-encode byte buffer tersebut ke Base64. Gunakan alat online ini untuk memastikan output Python Anda sesuai harapan sebelum dipakai di kode produksi.

Untuk apa gambar Base64 / data URI digunakan?

Data URI menyematkan byte gambar langsung di dalam HTML, CSS, JSON, atau email Anda sebagai teks, sehingga gambar dimuat bersama dokumen alih-alih lewat permintaan HTTP terpisah. Ideal untuk ikon mungil, logo di email HTML, demo satu file, dan menyimpan gambar kecil di database atau file konfigurasi. Pengembang juga memakainya untuk menghindari batasan CORS saat memuat gambar pada operasi canvas di halaman yang sama. Favicon juga umum disematkan sebagai data URI di head HTML untuk menghilangkan satu round-trip jaringan tambahan pada pemuatan pertama.

Apakah sebaiknya gambar besar disematkan sebagai Base64?

Umumnya tidak. Encoding Base64 membuat data sekitar 33% lebih besar dari biner aslinya, dan gambar yang disematkan tidak bisa di-cache terpisah oleh browser atau dimuat malas dengan loading="lazy". Simpan Base64 hanya untuk aset kecil yang jarang berubah seperti favicon, logo mungil, atau sprite ikon di bawah ~10 KB. Untuk foto besar, hero image, atau aset yang dipakai di banyak halaman, gunakan file gambar biasa yang disajikan dengan header caching HTTP yang tepat.

Apakah aman mengonversi gambar ke Base64 di sini?

Ya, sepenuhnya aman. Proses encode dan decode berjalan seluruhnya di browser Anda menggunakan API FileReader dan Canvas — gambar tidak pernah meninggalkan perangkat dan tidak ada yang dikirim ke server. Ini keunggulan privasi utama dibanding alat seperti <strong>base64.guru</strong> dan <strong>base64encoder.io</strong>, yang mengunggah gambar Anda ke server mereka untuk diproses. Di UtiloKit, gambar privat, rahasia, atau yang belum dipublikasikan tetap berada di mesin Anda selama seluruh konversi. Anda bahkan bisa memutus koneksi internet setelah halaman termuat dan alat ini tetap berfungsi.

Format gambar apa saja yang didukung?

Semua format yang bisa dibaca browser Anda berfungsi untuk encoding, termasuk PNG, JPEG/JPG, SVG, WebP, GIF, AVIF, BMP, dan ICO. Untuk decoding, semua tipe MIME data:image/* standar didukung dan hasilnya dipratinjau sebelum Anda unduh. File SVG mendapat penanganan khusus — Base64-nya juga bisa disematkan langsung di CSS tanpa encoding memakai url('data:image/svg+xml,…') dengan URL encoding, tetapi Base64 lebih universal dan berfungsi di semua browser serta klien email.

Bisakah gambar Base64 disematkan di Markdown atau email?

Bisa. Gunakan tombol «Copy Markdown» untuk ![alt](data:image/png;base64,…), atau «Copy <img>» untuk email HTML. Perlu dicatat, beberapa klien email (terutama Outlook dan aplikasi mobile Gmail) menghapus atau memblokir gambar Base64, jadi ujilah sebelum mengirim ke audiens luas. Untuk kampanye newsletter, lebih aman menghosting gambar di CDN dan menautkannya. Untuk email transaksional ke satu penerima, Base64 bekerja andal di sebagian besar klien.

Bagaimana UtiloKit dibandingkan base64.guru atau base64encoder.io?

Base64.guru dan base64encoder.io sama-sama memproses gambar Anda di sisi server — file Anda diunggah ke infrastruktur mereka. Konverter Gambar ke Base64 milik UtiloKit berjalan 100% di browser Anda: tanpa upload, tanpa server, tanpa data tersimpan di mana pun. UtiloKit juga menyediakan snippet CSS, HTML, dan Markdown yang siap ditempel, mendukung konversi dua arah (encode dan decode), serta bekerja offline setelah halaman dimuat. Semuanya gratis tanpa batasan ukuran file maupun jumlah konversi.

Apakah konverter Gambar ke Base64 ini gratis?

Sepenuhnya gratis, tanpa pendaftaran, tanpa watermark, dan tanpa batasan ukuran file atau jumlah gambar. Berbeda dengan browserling.com, yang membatasi konversi gambar gratis dan mengharuskan paket berbayar untuk file di atas ukuran tertentu, UtiloKit tidak punya pembatasan. Karena berjalan di sisi klien, tidak ada biaya per gambar atau bandwidth — konversilah sebanyak yang Anda mau, sebesar yang diizinkan memori browser Anda.

Bisakah dipakai di iPhone atau Android?

Bisa. Alat ini sepenuhnya responsif dan berjalan di semua browser mobile termasuk Safari di iPhone dan Chrome di Android. Anda bisa mengetuk untuk memilih gambar dari galeri atau aplikasi Files, atau menempelkan URL untuk memuat gambar jarak jauh. Hasilnya tersalin ke clipboard sehingga bisa langsung ditempel ke Notion, editor kode, atau aplikasi lain. Tanpa perlu mengunduh aplikasi — cukup buka halamannya di browser mobile dan semuanya bekerja persis seperti versi desktop.