Chuyển đổi hình ảnh sang định dạng BASE64

Đang khôi phục tệp đã chọn...

URL dữ liệu Base64 kết hợp loại phương tiện và các byte đã mã hóa của hình ảnh trong một giá trị văn bản, chẳng hạn data:image/png;base64,.... Chọn hình ảnh tối đa 20 MiB và công cụ sẽ tạo giá trị đó ngay trong trình duyệt. Trước khi sao chép, bạn có thể xem thông tin tệp gốc và độ dài ước tính của URL dữ liệu đã tạo.

Cách mã hóa hình ảnh bằng định dạng Base64

  1. 1

    Chọn hình ảnh

    Chọn một tệp hình ảnh có dung lượng tối đa 20 MiB.

  2. 2

    Mã hóa cục bộ

    Trình duyệt đọc tệp và tạo URL dữ liệu Base64 đầy đủ mà không tải lên máy chủ.

  3. 3

    Kiểm tra kết quả

    Xem loại phương tiện, thông tin tệp và độ dài ước tính của URL dữ liệu vừa tạo.

  4. 4

    Sao chép URL dữ liệu

    Sao chép toàn bộ giá trị `data:image/...;base64,...` vào bảng tạm.

Khi nào nên hiển thị nội dung trực tiếp trong dòng, khi nào nên liên kết?

Việc nhúng định dạng Base64 giúp tiết kiệm một yêu cầu HTTP nhưng làm tăng kích thước dữ liệu lên 33%, điều này có thể đáng giá đối với một số tài nguyên, nhưng lại rất lãng phí đối với những tài nguyên khác.

Phép tính kích thước

Kích thước gốc Kích thước Base64 Số byte bổ sung
1 KB 1.36 KB 360 B
10 KB 13.6 KB 3.6 KB
100 KB 136 KB 36 KB
1 MB 1.36 MB 360 KB

Hướng dẫn đưa ra quyết định

Trường hợp sử dụng Nội tuyến hoặc bên ngoài
Hình ảnh dưới 2 KB (biểu tượng SVG, sprite) Nội tuyến
Hình ảnh con trỏ trong CSS (cursor: url()) Nội tuyến
Bản minh họa HTML hoặc CSS nhỏ, độc lập Nội tuyến
Biểu tượng được tích hợp vào payload JavaScript Nội tuyến
Hình ảnh hero, lớn hơn 50 KB Bên ngoài
Bất kỳ thứ gì có thể được lưu riêng trong bộ nhớ đệm Bên ngoài

Định dạng URI dữ liệu

data:[<mediatype>][;base64],<data>

Ví dụ:

  • data:image/png;base64,iVBORw0KGgo..., PNG
  • data:image/svg+xml;utf8,<svg>...</svg>, định dạng SVG; thường phù hợp hơn khi hiển thị trực tiếp trong văn bản mà không sử dụng mã hóa Base64
  • data:image/jpeg;base64,/9j/4AAQS..., JPG

Những mẹo nhỏ

  • SVG thường là lựa chọn tốt hơn khi sử dụng url() kết hợp với mã hóa utf8 thay vì định dạng base64; nó ngắn gọn và dễ đọc hơn.
  • Quá trình mã hóa không kiểm tra hay làm sạch nội dung hình ảnh. Chỉ nhúng tệp đáng tin cậy, đặc biệt là SVG vì tệp này có thể chứa nội dung hoạt động hoặc tham chiếu bên ngoài.
  • Các hình ảnh lớn trong payload JSON có thể gây trở ngại cho quá trình phân tích nếu kích thước quá lớn; nên cân nhắc sử dụng định dạng multipart hoặc các tham chiếu từ bên ngoài.
  • Tập hợp hình nền CSS sử dụng định dạng Base64 có thể hiển thị rõ ràng nhưng làm mất khả năng lưu bộ nhớ đệm trên nhiều trang.

Câu hỏi thường gặp

Base64 mã hóa 3 byte dữ liệu đầu vào thành 4 ký tự, do đó kết quả đầu ra luôn lớn hơn khoảng 33% so với dữ liệu đầu vào. Một hình ảnh kích thước 10 KB sẽ tạo ra một chuỗi gồm khoảng 13.600 ký tự; việc sử dụng chuỗi dài là điều bình thường.

Công cụ nhận một hình ảnh tối đa 20 MiB. Đây là giới hạn xử lý, không phải kích thước nên nhúng. URL dữ liệu thường nên nhỏ vì Base64 làm tăng dung lượng nguồn khoảng một phần ba và khiến hình ảnh không thể được lưu vào bộ nhớ đệm riêng.

Không. Mã hóa Base64 được thực thi trực tiếp trong trình duyệt của bạn; hình ảnh sẽ không bao giờ rời khỏi thiết bị của bạn.

Trình mã hóa này không giải mã. Hãy dùng công cụ Base64 sang hình ảnh riêng để đổi URL dữ liệu hoặc chuỗi Base64 thô thành tệp hình ảnh có thể tải xuống.

Công cụ liên quan