Dekod dan pratonton rentetan imej yang dikodkan dalam base64 dengan serta-merta. Menyokong format biasa seperti JPEG, PNG, GIF dan pengendalian ralat untuk input yang tidak sah.
Seret dan lepas imej di sini, atau klik untuk memilih
Menyokong JPG, PNG, GIF, SVG
Penukar Imej Base64 adalah alat dalam talian yang serbaguna yang membolehkan anda menukar imej ke format teks Base64 dengan mudah dan mendekodkan rentetan Base64 kembali menjadi imej yang boleh dilihat. Penyandian Base64 adalah skema penyandian binari-ke-teks yang mewakili data binari dalam format rentetan ASCII, menjadikannya mungkin untuk menyematkan data imej secara langsung dalam HTML, CSS, JavaScript, JSON, dan format berasaskan teks lain di mana data binari tidak boleh disertakan secara langsung.
Alat percuma ini menawarkan dua fungsi utama:
Sama ada anda seorang pembangun web yang menyematkan imej dalam kod anda, bekerja dengan URI data, atau mengendalikan data imej dalam API, Penukar Imej Base64 kami menyediakan penyelesaian yang mudah dan berkesan dengan antara muka yang bersih dan ciri berguna seperti pilihan salin dan muat turun untuk output yang telah ditukar.
Penyandian Base64 menukar data binari menjadi satu set 64 watak ASCII (A-Z, a-z, 0-9, +, dan /), dengan = digunakan untuk padding. Untuk imej di web, data base64 biasanya diformat sebagai URL data dengan struktur berikut:
1data:[<media type>][;base64],<data>
2
Sebagai contoh, imej PNG yang disandi base64 mungkin kelihatan seperti:
1data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==
2
Komponen format ini adalah:
data:
- Skim URLimage/png
- Jenis MIME data;base64
- Kaedah penyandian,
- Pemisah antara tajuk dan dataApabila menukar imej kepada Base64, langkah-langkah berikut berlaku:
Apabila mendekod rentetan imej base64, langkah-langkah berikut berlaku:
Jika input tidak termasuk awalan URL data, penyahkod cuba untuk menganggapnya sebagai data base64 mentah dan menyimpulkan jenis imej daripada header binari yang didekodkan atau secara lalai kepada PNG.
Penukar Imej Base64 kami menyokong semua format imej web yang biasa:
Format | Jenis MIME | Kes Penggunaan Tipikal | Kecekapan Saiz |
---|---|---|---|
JPEG | image/jpeg | Foto, imej kompleks dengan banyak warna | Pemampatan yang baik untuk foto |
PNG | image/png | Imej yang memerlukan ketelusan, tangkapan skrin, grafik | Lebih baik untuk grafik dengan warna terhad |
GIF | image/gif | Animasi sederhana, imej warna terhad | Baik untuk animasi, warna terhad |
WebP | image/webp | Format moden dengan pemampatan yang lebih baik daripada JPEG/PNG | Pemampatan yang cemerlang, sokongan yang semakin meningkat |
SVG | image/svg+xml | Grafik vektor, ikon dan ilustrasi yang boleh diskalakan | Sangat kecil untuk grafik vektor |
BMP | image/bmp | Format imej tidak dimampatkan | Buruk (saiz fail besar) |
ICO | image/x-icon | Fail favicon | Berbeza |
Penukaran imej Base64 mempunyai banyak aplikasi dalam pembangunan web dan sebaliknya:
1 <!-- Menyematkan imej base64 secara langsung dalam HTML -->
2 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Imej yang disandi Base64">
3
Templat email: Memastikan imej dipaparkan dengan betul dalam klien email yang menyekat imej luar secara lalai.
Aplikasi satu fail: Membuat aplikasi HTML yang berdiri sendiri di mana semua sumber disematkan dalam satu fail.
Respons API: Menyertakan data imej secara langsung dalam respons JSON tanpa memerlukan titik akhir imej yang berasingan.
URI data dalam CSS: Menyematkan ikon kecil dan imej latar secara langsung dalam fail CSS.
1 .icon {
2 background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==');
3 }
4
Manipulasi kanvas: Memudahkan menyimpan dan memindahkan data imej kanvas.
Aplikasi luar talian: Menyimpan imej sebagai rentetan teks dalam localStorage atau IndexedDB.
Mengambil imej yang disematkan: Mengekstrak dan menyimpan imej dari fail HTML, CSS, atau JS.
Integrasi API: Memproses data imej yang diterima dalam format Base64 dari API.
Penyahpepijatan: Memvisualisasikan data imej Base64 untuk mengesahkan kandungan dan formatnya.
Pengekstrakan data: Memulihkan imej dari pangkalan data atau fail teks di mana ia disimpan sebagai Base64.
Menukar data papan klip: Memproses data imej Base64 yang disalin dari pelbagai sumber.
Walaupun penyandian Base64 menawarkan kemudahan, ia datang dengan pertukaran penting yang perlu dipertimbangkan:
Untuk prestasi yang optimum, penyandian Base64 biasanya disyorkan hanya untuk imej kecil (di bawah 10KB). Imej yang lebih besar biasanya lebih baik dilayani sebagai fail berasingan yang boleh disimpan dalam cache dan dioptimumkan.
Saiz Imej (Asal) | Saiz Terkod (Anggaran) | Cadangan |
---|---|---|
Di bawah 5KB | Di bawah 7KB | Calon yang baik untuk penyandian Base64 |
5KB - 10KB | 7KB - 14KB | Pertimbangkan Base64 untuk imej kritikal |
10KB - 50KB | 14KB - 67KB | Gunakan Base64 secara selektif, nilai kesan prestasi |
Lebih 50KB | Lebih 67KB | Elakkan Base64, gunakan fail luar sebaliknya |
Terdapat beberapa alternatif kepada penyandian Base64 untuk pelbagai kes penggunaan:
Penyematan SVG dalam talian: Untuk grafik vektor, SVG dalam talian sering memberikan prestasi dan fleksibiliti yang lebih baik daripada Base64 yang disandi SVG.
WebP dan format imej moden: Ini memberikan pemampatan yang lebih baik daripada JPEG/PNG yang disandi Base64.
Sprite imej: Menggabungkan beberapa imej kecil ke dalam satu fail dan menggunakan pemposisian CSS.
CDN (Rangkaian Penghantaran Kandungan): Untuk laman pengeluaran, menyajikan imej yang dioptimumkan dari CDN sering lebih cekap.
Pemampatan data: Untuk memindahkan sejumlah besar data binari, algoritma pemampatan khusus seperti gzip atau Brotli lebih cekap daripada Base64.
HTTP/2 dan HTTP/3: Protokol ini mengurangkan beban permintaan berganda, menjadikan rujukan imej luar lebih cekap.
Berikut adalah contoh bekerja dengan imej yang disandi Base64 dalam pelbagai bahasa pengaturcaraan:
1// Tukar imej kepada Base64
2function imageToBase64(imgElement) {
3 const canvas = document.createElement('canvas');
4 canvas.width = imgElement.width;
5 canvas.height = imgElement.height;
6
7 const ctx = canvas.getContext('2d');
8 ctx.drawImage(imgElement, 0, 0);
9
10 // Dapatkan sebagai URL data (rentetan Base64)
11 return canvas.toDataURL('image/png');
12}
13
14// Tukar input fail kepada Base64
15function fileToBase64(fileInput, callback) {
16 const reader = new FileReader();
17 reader.onload = function(e) {
18 callback(e.target.result);
19 };
20 reader.readAsDataURL(fileInput.files[0]);
21}
22
23// Paparkan imej Base64
24function displayBase64Image(base64String) {
25 const img = new Image();
26
27 // Tangani rentetan tanpa awalan URL data
28 if (!base64String.startsWith('data:')) {
29 base64String = `data:image/png;base64,${base64String}`;
30 }
31
32 img.src = base64String;
33 document.body.appendChild(img);
34}
35
36// Muat turun imej Base64
37function downloadBase64Image(base64String, fileName = 'image.png') {
38 const link = document.createElement('a');
39 link.href = base64String;
40 link.download = fileName;
41 link.click();
42}
43
1import base64
2from PIL import Image
3from io import BytesIO
4
5# Tukar fail imej kepada Base64
6def image_to_base64(image_path):
7 with open(image_path, "rb") as image_file:
8 encoded_string = base64.b64encode(image_file.read())
9 return encoded_string.decode('utf-8')
10
11# Tukar Base64 kepada imej dan simpan
12def base64_to_image(base64_string, output_path):
13 # Buang awalan URL data jika ada
14 if ',' in base64_string:
15 base64_string = base64_string.split(',')[1]
16
17 image_data = base64.b64decode(base64_string)
18 image = Image.open(BytesIO(image_data))
19 image.save(output_path)
20
21# Contoh penggunaan
22base64_str = image_to_base64("input.jpg")
23print(f"data:image/jpeg;base64,{base64_str[:30]}...") # Cetak permulaan rentetan
24
25base64_to_image(base64_str, "output.jpg")
26
1<?php
2// Tukar fail imej kepada Base64 dalam PHP
3function imageToBase64($path) {
4 $type = pathinfo($path, PATHINFO_EXTENSION);
5 $data = file_get_contents($path);
6 return 'data:image/' . $type . ';base64,' . base64_encode($data);
7}
8
9// Tukar Base64 kepada imej dan simpan
10function base64ToImage($base64String, $outputPath) {
11 // Ekstrak data binari yang disandi Base64
12 $imageData = explode(',', $base64String);
13 $imageData = isset($imageData[1]) ? $imageData[1] : $imageData[0];
14
15 // Dekod dan simpan
16 $data = base64_decode($imageData);
17 file_put_contents($outputPath, $data);
18}
19
20// Contoh penggunaan
21$base64Image = imageToBase64('input.jpg');
22echo substr($base64Image, 0, 50) . "...\n"; // Cetak permulaan rentetan
23
24base64ToImage($base64Image, 'output.jpg');
25?>
26
1import java.io.File;
2import java.io.FileOutputStream;
3import java.io.IOException;
4import java.nio.file.Files;
5import java.util.Base64;
6
7public class Base64ImageUtil {
8
9 // Tukar fail imej kepada Base64
10 public static String imageToBase64(String imagePath) throws IOException {
11 File file = new File(imagePath);
12 byte[] fileContent = Files.readAllBytes(file.toPath());
13 String extension = imagePath.substring(imagePath.lastIndexOf(".") + 1);
14 String base64String = Base64.getEncoder().encodeToString(fileContent);
15
16 return "data:image/" + extension + ";base64," + base64String;
17 }
18
19 // Tukar Base64 kepada imej dan simpan
20 public static void base64ToImage(String base64String, String outputPath) throws IOException {
21 // Buang awalan URL data jika ada
22 if (base64String.contains(",")) {
23 base64String = base64String.split(",")[1];
24 }
25
26 byte[] decodedBytes = Base64.getDecoder().decode(base64String);
27
28 try (FileOutputStream fos = new FileOutputStream(outputPath)) {
29 fos.write(decodedBytes);
30 }
31 }
32
33 public static void main(String[] args) throws IOException {
34 String base64Image = imageToBase64("input.jpg");
35 System.out.println(base64Image.substring(0, 50) + "..."); // Cetak permulaan rentetan
36
37 base64ToImage(base64Image, "output.jpg");
38 }
39}
40
1using System;
2using System.IO;
3using System.Text.RegularExpressions;
4
5class Base64ImageConverter
6{
7 // Tukar fail imej kepada Base64
8 public static string ImageToBase64(string imagePath)
9 {
10 byte[] imageBytes = File.ReadAllBytes(imagePath);
11 string base64String = Convert.ToBase64String(imageBytes);
12
13 string extension = Path.GetExtension(imagePath).TrimStart('.').ToLower();
14 return $"data:image/{extension};base64,{base64String}";
15 }
16
17 // Tukar Base64 kepada imej dan simpan
18 public static void Base64ToImage(string base64String, string outputPath)
19 {
20 // Buang awalan URL data jika ada
21 if (base64String.Contains(","))
22 {
23 base64String = base64String.Split(',')[1];
24 }
25
26 byte[] imageBytes = Convert.FromBase64String(base64String);
27 File.WriteAllBytes(outputPath, imageBytes);
28 }
29
30 static void Main()
31 {
32 string base64Image = ImageToBase64("input.jpg");
33 Console.WriteLine(base64Image.Substring(0, 50) + "..."); // Cetak permulaan rentetan
34
35 Base64ToImage(base64Image, "output.jpg");
36 }
37}
38
Alat Penukar Imej Base64 berfungsi di semua pelayar moden, dengan pertimbangan keserasian berikut:
Pelayar | Sokongan Base64 | Sokongan URL Data | Sokongan API Fail |
---|---|---|---|
Chrome | Penuh | Penuh | Penuh |
Firefox | Penuh | Penuh | Penuh |
Safari | Penuh | Penuh | Penuh |
Edge | Penuh | Penuh | Penuh |
Opera | Penuh | Penuh | Penuh |
IE 11 | Sebahagian | Terhad (panjang URL maksimum) | Sebahagian |
Alat ini sepenuhnya responsif dan berfungsi pada pelayar mudah alih, dengan pertimbangan berikut:
Saiz fail besar: Jika output Base64 anda terlalu besar, pertimbangkan:
Keserasian format: Beberapa format imej mungkin tidak disokong dalam semua pelayar apabila disandi sebagai Base64. Kekal dengan JPEG, PNG, dan SVG untuk keserasian maksimum.
Kesan prestasi: Jika prestasi halaman menurun selepas menyematkan imej Base64, pertimbangkan:
Data Base64 tidak sah: Jika anda menerima ralat semasa mendekod:
Imej tidak dipaparkan: Jika imej yang didekod tidak muncul:
S: Apakah penyandian Base64 dan mengapa ia digunakan untuk imej?
J: Penyandian Base64 adalah kaedah untuk menukar data binari kepada format teks ASCII. Ia digunakan untuk imej untuk menyematkannya secara langsung dalam HTML, CSS, atau JavaScript tanpa memerlukan permintaan HTTP berasingan, yang boleh meningkatkan prestasi muat halaman untuk imej kecil.
S: Adakah terdapat had saiz untuk imej yang boleh saya tukar?
J: Walaupun alat kami boleh mengendalikan kebanyakan saiz imej yang munasabah, kami mengesyorkan mengekalkan imej di bawah 5MB untuk prestasi optimum. Penyandian Base64 meningkatkan saiz fail kira-kira 33%, jadi imej 5MB akan menghasilkan kira-kira 6.7MB teks Base64.
S: Adakah penyandian Base64 memampatkan imej saya?
J: Tidak, penyandian Base64 sebenarnya meningkatkan saiz fail kira-kira 33%. Ia adalah kaedah penukaran, bukan algoritma pemampatan. Untuk pemampatan, anda harus mengoptimumkan imej anda sebelum menyandikannya.
S: Format imej apa yang boleh saya tukar kepada Base64?
J: Alat kami menyokong semua format imej web yang biasa termasuk JPEG, PNG, GIF, WebP, SVG, BMP, dan fail ICO.
S: Bagaimana saya boleh menggunakan output Base64 dalam kod saya?
J: Anda boleh menggunakan output Base64 secara langsung dalam tag HTML <img>
, sifat background-image
CSS, atau sebagai data dalam JavaScript. Untuk HTML, gunakan format: <img src="data:image/jpeg;base64,YOUR_BASE64_STRING">
.
S: Adakah lebih baik menggunakan Base64 atau fail imej biasa?
J: Untuk imej kecil (di bawah 10KB), Base64 boleh mengurangkan permintaan HTTP dan meningkatkan prestasi. Untuk imej yang lebih besar, fail imej biasa biasanya lebih baik kerana mereka boleh disimpan dalam cache oleh pelayar dan tidak meningkatkan saiz fail HTML/CSS anda.
S: Bolehkah saya mendekod mana-mana rentetan Base64 kepada imej?
J: Hanya rentetan Base64 yang mewakili data imej sebenar boleh didekod untuk menjadi imej yang boleh dilihat. Alat ini akan cuba mengesan format imej, tetapi untuk hasil terbaik, gunakan rentetan yang termasuk awalan URL data (contohnya, data:image/png;base64,
).
S: Apa yang berlaku jika saya cuba mendekod data Base64 yang tidak sah?
J: Alat ini akan memaparkan mesej ralat jika rentetan Base64 tidak sah atau tidak mewakili data imej.
S: Bolehkah saya mengedit imej selepas mendekod?
J: Alat kami memberi tumpuan kepada penukaran dan tidak termasuk ciri penyuntingan. Selepas memuat turun imej yang didekod, anda boleh mengeditnya dengan mana-mana perisian penyunting imej.
Alat Penukar Imej Base64 kami memproses semua data secara langsung dalam pelayar anda. Ini bermakna:
Optimumkan sebelum penyandian: Memampatkan dan mengubah saiz imej anda sebelum menukar kepada Base64 untuk meminimumkan saiz yang dikodkan.
Gunakan format yang sesuai: Pilih format imej yang betul berdasarkan kandungan:
Pertimbangkan implikasi caching: Ingat bahawa imej yang disandi Base64 tidak boleh disimpan dalam cache secara berasingan oleh pelayar, tidak seperti fail imej luar.
Uji kesan prestasi: Ukur masa muat halaman sebelum dan selepas melaksanakan imej Base64 untuk memastikan anda benar-benar meningkatkan prestasi.
Gunakan awalan URL data: Sentiasa sertakan awalan URL data yang sesuai (contohnya, data:image/png;base64,
) untuk keserasian maksimum.
Gabungkan dengan teknik lain: Pertimbangkan untuk menggunakan Base64 bersama teknik pengoptimuman lain seperti pemuatan malas dan imej responsif.
Penyandian Base64 mempunyai akar dalam pembangunan sistem mel elektronik pada tahun 1970-an. Ia direka untuk menyelesaikan masalah menghantar data binari melalui sistem yang direka untuk hanya mengendalikan teks ASCII.
Skema penyandian ini telah diformalkan pada tahun 1987 dengan penerbitan RFC 989, yang mendefinisikan standard Privacy Enhanced Mail (PEM). Ini kemudiannya dikemas kini dalam RFC 1421 dan standard berkaitan lain. Istilah "base64" itu sendiri berasal dari fakta bahawa penyandian menggunakan 64 watak ASCII yang berbeza untuk mewakili data binari.
Dalam konteks pembangunan web, penyandian imej Base64 menjadi popular dengan kemunculan URL data, yang pertama kali dicadangkan dalam RFC 2397 pada tahun 1998. Ini membolehkan data binari disertakan secara langsung dalam dokumen HTML, CSS, dan web yang lain.
Penggunaan imej yang disandi Base64 dalam pembangunan web menjadi lebih meluas pada pertengahan 2000-an apabila pembangun mencari cara untuk mengurangkan permintaan HTTP dan meningkatkan masa muat halaman. Teknik ini terutama diterima semasa kebangkitan pembangunan web mudah alih, di mana meminimumkan permintaan adalah penting untuk prestasi pada sambungan mudah alih yang lebih perlahan.
Hari ini, penyandian Base64 kekal sebagai alat penting dalam pembangunan web, walaupun penggunaannya telah menjadi lebih terarah sebagai amalan terbaik yang telah berkembang. Pendekatan moden cenderung menggunakan penyandian Base64 secara selektif untuk imej kecil yang kritikal sambil memanfaatkan kaedah penghantaran yang lebih cekap seperti HTTP/2 untuk aset yang lebih besar.
Cuba Penukar Imej Base64 kami sekarang untuk dengan cepat menyandi imej anda kepada Base64 atau mendekod rentetan Base64 kembali kepada imej yang boleh dilihat. Dengan antara muka yang mudah digunakan, anda boleh menyalin hasilnya atau memuat turunnya dengan hanya satu klik!
Temui lebih banyak alat yang mungkin berguna untuk aliran kerja anda