跳到内容

🖼️ 图片 → Base64 / Data URL 转换

拖放图片即可转换为 Base64 / Data URL。可直接用于 CSS background-image 或 HTML img 标签。

完全免费 无需注册 浏览器内完成 5 种语言 深色模式
📂

拖放图片或点击选择

PNG / JPG / WebP / SVG / GIF / AVIF / BMP / ICO

💡 Data URL 使用方法

• 嵌入小图标或 1–2 KB 图片可减少 HTTP 请求数。

• Base64 编码会增加约 33% 的大小。

• SVG 可以考虑直接内联为 XML — 通常比 Base64 更小。

🔗 相关工具

📖 常见的坑

把图像转换为 Base64,并导出为 data URL、CSS 的 background-image、HTML 的 img 标签或 Markdown。处理全部在浏览器内完成,文件不会被上传。用 data URL 能少一个 HTTP 请求,但这未必就更快——数据量会增加约 33%,浏览器缓存也不再起作用。权衡这两点,正是使用本工具时唯一真正的判断。

情形 会发生什么 怎么处理
嵌进去之后反而更慢了 被转成 data URL 的图片无法单独被缓存——因为它已成为承载它的 CSS 或 HTML 的一部分。在 CSS 中影响最大:样式表会阻塞渲染,因此图片的字节数直接转化为首屏绘制前的延迟。二十张 10KB 的图片会变成一个 266KB 的阻塞渲染资源,取代了原本可以并行加载的二十个请求。而且,只要换掉其中一张图,整份样式表的缓存就失效,每次更新所有用户都要重新下载全部内容。 data URL 只在几 KB 以内的小图标上才划算——大致标准是一两 KB,且极少变动:对勾、箭头、加载转圈这类界面的零碎构件。再大的就该用普通的 <img> 加载——缓存与响应式图片(srcset)带来的好处,稳稳超过省下的那一个请求。而且前提本身已经变了:自 HTTP/2 起,额外请求的代价大幅下降——「减少请求就更快」是 HTTP/1.1 时代的经验法则,如今并不自动成立判断标准是:比较「这张图多久换一次」与「这份 CSS 要分发多少次」。
连 SVG 也做成了 Base64 SVG 是文本,把它做成 Base64 是亏本买卖。Base64 把三个字节变成四个字符,因此必定增加约 33%;而且结果近似随机数据,gzip 与 Brotli 几乎压不动。原始 SVG 中重复的标记很多,保持原样时压缩可减小约 70%,但 Base64 把这一特性彻底摧毁「先优化再转 Base64」这套流程,常常把优化省下的那部分原样抵消掉。 要内嵌 SVG,请用百分号编码而不是 Base64——写成 data:image/svg+xml,%3Csvg...必须转义的只有 #%" 三个,其余几乎可以原样放着,因此结果比 Base64 更小,而且仍可压缩更好的选择是:SVG 根本不必做成 data URL,直接内联书写——把 <svg> 放进 HTML,就能用 CSS 换色、做动画,而且比 data URL 更短若要使用多个图标,请合并成 SVG 雪碧图,而不是逐个内嵌——在请求数与总体积上都更划算。
data URL 被 CSP 或投放平台拦下 若内容安全策略写成 img-src 'self' 这样,使用 data: 方案的图片会被拒绝,什么也显示不出来——控制台会有报错,但视觉上只是「少了一张图」,原因很容易被忽略。投放端也一样:Gmail 不会显示 HTML 邮件中的 data URL 图片,表现为本地预览一切正常,收件箱里却空缺「既然嵌进去了就一定能显示」,正是最容易落空的那个期待。 若你启用了 CSP,请显式放行 data:——写成 img-src 'self' data:,但不要把它并进 default-src连脚本与样式也放行 data:,会扩大 XSS 的攻击面只针对图片放行才是正确的粒度。至于 HTML 邮件,请不要使用 data URL,改用绝对 URL 引用外部图片;并且要知道,反正多数客户端默认就屏蔽外部图片,因此更要紧的是让正文在没有图片时也读得通而且无论走哪条路,除了真正投递出去、在真实环境里打开确认之外,没有别的验证办法——本地预览对这类问题一无所知。

Base64 连混淆都算不上。嵌在样式表里的 data:image/png;base64,...用浏览器开发者工具当场就能解码并查看——把机密截图或尚未公开的图稿嵌进去,理由是「藏在 CSS 里所以看不见」,那纯粹是错的。此外还有一条本工具特有的提醒:这里是把文件的字节序列原样做 Base64,因此 EXIF 会完整保留。与经过 Canvas 的图像工具不同,GPS 坐标、拍摄时间、相机型号,全都原封不动地留在你生成的 data URL 里要把手机拍的照片以 data URL 形式公开时,请先清除 EXIF——图像格式转换图像缩放都会经过 Canvas,在此过程中 EXIF 会被清除。「嵌进去了所以内容看不见」这一直觉,在上述两点上都不成立。

📖 使用方法

  1. 1
    拖放或点击选择图片
    将图片拖放到拖放区域,或点击选择文件。支持 PNG、JPG、WebP、SVG 等主要格式。
  2. 2
    选择输出格式
    选择 Data URL、纯 Base64、CSS background-image、HTML img 标签或 Markdown 格式。
  3. 3
    复制并使用
    点击复制按钮将编码文本保存到剪贴板,然后粘贴到代码中。

❓ 常见问题

支持从剪贴板粘贴吗?
是的。将图片复制到剪贴板后,在页面上按 Ctrl+V / Cmd+V 即可自动加载。
Base64 转换后文件大小会怎样?
Base64 编码会使文件大小增加约 33%。嵌入大图片可能影响页面加载性能。
什么情况下适合使用 Data URL?
适用于 1–2 KB 左右的小图标或内联图片以减少 HTTP 请求。不适合大图片。
🐛 此工具出现问题了吗?

免费、无需注册。仅提供复现步骤也有帮助。报告将直接发送给运营者并用于改进。

※ 为复现问题,浏览器信息 (UA / 屏幕 / 语言 / URL) 将自动发送