图片转 Base64 工具 — 免费在线

将图片文件转换为可直接嵌入 HTML 或 CSS 的 Base64 数据 URI。

结果仅供参考,可能包含错误。请自行核实重要信息。使用本工具风险自负。

这个工具能做什么

图片转 Base64 工具会把图片文件转换成一个 data URL:一行以 data:image/png;base64,(或你的文件对应的类型)开头的文本,后面跟着经过 Base64 编码的图片字节。选择 PNG、JPG、GIF、SVG、WebP 或任何其他图片,文本就会连同预览一起出现,可以直接复制。

文件通过浏览器的 FileReader 读取,因此永远不会被上传。凡是能使用普通图片地址的地方,都可以使用 data URL:<img src>、CSS 的 background-image: url(...)、JSON 请求体或邮件模板。Base64 会让数据比原始文件大约增加三分之一,所以最适合小图片。

适用场景

  • 把小图标或 logo 嵌入 CSS,让页面少发一次请求。
  • 把图片放进一个自包含的单一 HTML 文件,例如报告或演示页面。
  • 通过不支持 multipart 上传的 JSON API 请求发送图片。
  • 在 HTML 邮件签名或测试 fixture 中加入内联图片。

示例

输入

pixel.png(1 × 1 px,蓝色,69 字节)

输出

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mOwbvoGAAKvAbSJsn7VAAAAAElFTkSuQmCC

关于这个工具的问题

为什么 Base64 文本比我的图片还大?

Base64 把每 3 个字节写成 4 个文本字符,所以结果比原文件大约大 33%。一张 30 KB 的图片会变成大约 40 KB 的文本。服务器端的 Gzip 或 Brotli 压缩可以弥补一部分。

什么情况下不应该内联图片?

大尺寸照片以及在很多页面上都会用到的图片不适合内联。普通的图片文件只需被浏览器缓存一次,而内联图片会随着包含它的每个 HTML 或 CSS 文件被重复下载。

如何在 CSS 中使用结果?

用 url() 包起来:background-image: url("data:image/png;base64,...");。对于 SVG 图标,经过 URL 编码的 SVG 往往比 Base64 更小,可以用 URL 编码页面来生成。

如何把 Base64 还原成图片?

把完整的 data URL 粘贴到浏览器地址栏中,然后保存图片;如果需要原始字节,也可以用 Base64 解码工具解码逗号后面的部分。

这个工具免费吗?

是的,完全免费。无需注册或电子邮箱。结果直接显示在本页。

如何获取结果?

在此页面使用工具即可查看结果,无需通过电子邮件接收。