跳到主要内容

SVG 转 Data URI:URL 编码 / base64,CSS / HTML / 纯 URI

把 SVG 内联成 data URI,URL 编码(更小)或 base64,直接给出可粘的 CSS、HTML、纯 URI,并排体积对比,100% 浏览器本地。

  • 本地处理
  • 分类 开发运维
  • 适合 格式化、校验、压缩或检查和代码相关的文本。

单个 .svg,上限 1 MB。任何字节都不出标签页。

编码方式
输出格式
输出
隐私. 两个编码器都是浏览器里跑的纯 JavaScript —— 不上传、不打点。打开 DevTools 的 Network 面板,请求数始终是 0。

这个工具能做什么

把 SVG 源码转成可内联的 data URI,直接粘进 CSS 的 `background-image`、HTML 的 `<img src>`,或任何接受 URL 的地方, 不发额外的 HTTP 请求,不依赖外部文件。粘贴源码或拖一个 `.svg` 文件进来,工具会同时给出两种编码:URL 编码(推荐,只转义少数 会在 `url(...)` 里出问题的字符,所以更小,而且仍然肉眼可读)和 传统的 base64。逐字节的体积对比告诉你你这个 SVG 用哪种编码更划算; 绝大多数图标和 logo,URL 编码比 base64 小 20-40%,因为它把尖括号、 字母、数字原样留着,而不是把每 3 字节硬撑成 4 字节。还有一个可选的 轻量清理,在编码前去掉注释、合并多余空白,但不碰路径和属性, 不会破坏渲染。三种输出一键复制:完整 CSS 规则、`<img>` 标签、 或纯 data URI。整个过程都在你的标签页里本地跑,SVG 不出设备, 编码器是纯 JavaScript,可以在 DevTools 里逐行审。

工具细节

输入
文件 + 文本
页面会根据工具类型展示文本框、数值控件、文件选择或结构化输入。
输出
即时结果 + 复制 + 预览
结果区优先给出可操作结果,支持项会显示复制、下载或可视化预览。
隐私
浏览器本地处理
主工具逻辑未发现外部 API 调用,输入通常留在当前标签页内处理。
保存 / 分享
可分享链接状态
关键设置会进入 URL,复制链接后别人能复现同一组参数。
性能预算
首屏 JS ≤ 10 KB
没有声明 WASM 依赖,适合快速打开和移动端使用。
适用场景
开发运维 · 程序员
分类和职业标签用于推荐相关工具、组织内链,并帮助用户快速判断是否适合当前任务。

怎么用

  1. 1. 输入

    把内容粘贴或拖入工具面板。

  2. 2. 处理

    点击按钮,在浏览器内本地处理,文件不上传。

  3. 3. 复制 / 下载

    一键复制结果或下载到本地。

SVG 转 Data URI / CSS 背景 适合怎么用

适合穿插在写代码、查问题、做 Review、上线前的小任务里。

适合开发场景

  • 格式化、校验、压缩或检查和代码相关的文本。
  • 把片段整理好再放进文档、工单、提交或交接材料。
  • 不切换工具,快速检查一个小 payload。

开发检查项

  • 压缩、混淆这类不可逆处理,先对副本操作。
  • 除非确认工具本地处理,不要粘贴密钥和敏感片段。
  • 转换后的代码上线前,仍要跑自己的测试或 lint。

下一步可以接着做

这些入口会把当前任务接到更完整的工具链里。

  1. 1 SVG 优化压缩器 SVG 优化压缩器, 去注释 / metadata / 空属性 / 圆角小数, 合并无用 group, 100% 浏览器本地不上传, 平均能压 30-60%。 打开
  2. 2 SVG 转 PNG 转换器 浏览器内把 SVG 栅格化成 PNG:自定义尺寸、1×/2×/3× 高清倍数、真透明背景,全程不上传。 打开
  3. 3 Base64 图片转换器 图片 ⇄ Base64 互转,拖拽 PNG/JPG/WebP/SVG,得 data URI 用于 CSS / HTML / Markdown。 打开

真实使用场景

  • 把 CSS 背景图标内联,省掉一次请求

    某个组件里用到一个小箭头或搜索图标,你不想为它单独放一个 `.svg` 文件(还要多走一趟 HTTP)。把 SVG 粘进来,保持 URL 编码选中,复制 CSS 输出,`background-image: url("data:image/svg+xml,...")`,直接粘进组件样式表。图标就烤 在 CSS 里,首屏直接渲染,没有图片缺失的闪烁,网络面板还少一个 请求。如果是一整套图标精灵,省下来的请求很可观。

  • 在 HTML 邮件里嵌一个 logo

    邮件客户端默认拦截外链图片,很多还会剥掉 `<style>` 块,所以 展示小矢量 logo 最稳的办法是给 `<img>` 标签一个内联 data URI。 粘 logo 的 SVG,把输出切到 HTML `<img>` 那种,复制。注意不少老 邮件客户端(Outlook 桌面版)根本不渲染 SVG,那种情况先用 svg-to-png-converter 转成位图,再用 base64-image-converter 把 PNG 内联。受众用的是现代网页邮箱(Gmail、Apple Mail,支持 SVG) 时才用这个工具。

  • 给 Tailwind / CSS 自定义属性塞进矢量图

    你想要一个可复用的 `--icon-check: url(...)` 自定义属性,这样任何 元素都能用 `background-image: var(--icon-check)` 拉同一个 SVG。 粘图标,复制纯 data URI 输出,赋值给 `:root` 里的变量。URL 编码 让这个值短到在 DevTools 里还能读得清,当你的 `:root` 里挤着十 几个图标变量时,这一点很重要。

  • 提交前对比 URL 编码和 base64

    你接手了一个样式表,前人把每个内联 SVG 都 base64 了,CSS 文件比 需要的更重。把每个 SVG 粘进来,看体积对比,它把 base64 字节数 和 URL 编码字节数并排列出来。典型图标你会看到 URL 编码赢 20-40%。 把 base64 的块换成 URL 编码形式,重新算一下 CSS 包体积,你就在 零视觉变化的前提下,给每次页面加载实打实减了字节。

  • 拿 SVG 平铺图案当背景做原型

    你在 Figma 里设计了一个可平铺的圆点或波浪图案,导出成一个小 SVG 瓦片。想把它当 CSS 背景预览,就得内联。粘瓦片,复制 CSS 规则,加上 `background-repeat: repeat`,不用走构建就能在浏览器 里调样子。图案定稿后,css-pattern-generator 能给你纯 CSS 的 替代方案,如果你不想内联,可以完全跳过 data URI。

常见踩坑

  • 手写 data URI 时把 `#` 漏转了。带原始 `#` 的 `fill="#f00"` 会在井号处把 SVG 截断,因为浏览器把 `#` 后面的一切当成 URL 片段。这个工具会自动转成 `%23`,但如果你从别处复制的 data URI 渲染成空白,先查有没有没转的 `#`。

  • 条件反射地什么都 base64。base64 固定多约 33%,而且输出没法读。SVG 本身就是文本,URL 编码几乎总是更小,还能在 DevTools 里直接看。只有当某个消费方明确处理不了 URL 编码的负载时,才用 base64。

  • 把大插画内联。data URI 没法和承载它的文件分开缓存,所以一个 50 KB 的内联 SVG 会随每个引用它的页面重新下载。内联只留给小图标和 logo;大资源用外链文件。

  • 忘了 `<img src="data:image/svg+xml,...">` 需要 SVG 自带 `xmlns`。和 HTML 里的内联 `<svg>` 不同,经 `<img>` 或 CSS `url()` 加载的 SVG 是当独立文档解析的,必须声明 `xmlns="http://www.w3.org/2000/svg"`,否则不渲染。

隐私说明

你粘贴或拖入的 SVG 完全在浏览器标签页里编码,URL 编码器和 base64 编码器都是纯 JavaScript,不发网络请求,不上传,不记录你转过什么。 打开 DevTools 的 Network 面板,请求数始终是 0。一个隐私提醒:这个 工具会把你的 SVG 源码镜像进可分享的 URL query string,这样"分享 链接"能复现同样的输入。SVG 源码通常较大,所以 URL 状态有上限, 过大的输入根本不会写进 URL。即便如此,如果你的 SVG 里嵌了不该出现 在截图里的东西(注释里的私有 API key、还没发布的品牌标),请手动 复制输出,别分享 URL。

常见问题

类似工具组合

做你这行的人, 还会一起用这些。

Made by Toolora · 100% client-side · Updated 2026-06-14