图片转 Base64 转换工具
在浏览器中将图片转换为 Base64 data URI——支持 PNG、JPG、GIF、WebP、SVG、ICO。一键复制 HTML、CSS、Markdown 和 JSON 输出。100% 私密,无需上传。
把图片拖到这里、粘贴它,或点击浏览
PNG · JPG · GIF · WebP · SVG · ICO · BMP — 完全在你的浏览器中转换
什么是 Base64 图片(Data URI)?
Base64 图片是指其二进制字节被用 Base64 字母表(A–Z、a–z、0–9、+ 和 /)重新编码为可打印 ASCII 字符串的图片。把这段字符串包进 data: URI 方案——data:image/png;base64,iVBORw0KGgo…——它就能出现在任何需要 URL 的地方:HTML 的 img src、CSS 的 background-image、邮件正文,或 JSON 载荷中的某个字段。浏览器会即时解码并显示图片,无需单独的网络请求。这就是 Base64 图片有时被称为「内联」或「嵌入」图片的原因。
这种编码的存在有一个简单的理由:许多系统是为承载文本而非任意二进制数据设计的。HTML、JSON、邮件头和 URL 都期望字符,而原始图片字节会包含破坏它们的控制码和分隔符。Base64 把每 3 个二进制字节映射到 4 个安全的文本字符,保证数据完整地通过传输。代价是体积:文本表示比原始二进制大约大 33%,且无法独立于包含它的文档被缓存。
这一权衡决定了 Base64 图片何时合理。对于只用于一个样式表的小图标,内联省去了一次往返,体积代价可忽略——明显划算。对于在每个页面复用的 200 KB 主视觉照片,内联会让每个页面膨胀、击穿浏览器缓存,并在每次加载时消耗 CPU 解码——明显得不偿失。现代的、HTTP/2 时代的指引是:只内联小而稳定的资源,其余一律作为普通可缓存文件提供。本工具会呈现你图片的精确数字和一个红绿灯式建议,让决策有数据支撑,而非凭经验。
反向操作——把 Base64 字符串变回可查看、可下载的图片——在你调试样式表中的 data URI、检查 API 响应或恢复嵌入配置文件中的资源时同样有用。切换到 Base64 → 图片标签页,或打开专门的 Base64 转图片解码器。
<!-- The same 1×1 transparent PNG, four ways -->
<!-- HTML -->
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==" alt="pixel">
/* CSS */
.badge {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==");
}
<!-- Markdown -->

// JSON
{ "mime": "image/png", "data": "iVBORw0KGgo…" } 核心功能
拖入、点击或粘贴
三种输入方式:拖入文件、浏览选择,或用 Ctrl+V 直接从剪贴板粘贴图片——这是处理截图最快的路径。无论你提供什么,都会立即编码,绝不上传。
六种输出格式
原始 Base64、完整 Data URI、HTML 元素、CSS background-image 规则、Markdown 图片链接和 JSON 对象。每种都有自己的复制按钮和下载选项,让代码片段正好适配你需要的场景。
实时大小与膨胀指标
元数据栏会显示原始文件大小、编码后的 Base64 大小,以及你具体图片的精确增幅——而不是泛泛的「大约 33%」。在你决定内联之前,就能看到真实成本。
内联建议徽标
一个红绿灯式建议会读取你的文件大小,告诉你 data URI 是否合适:约 2 KB 以下为绿色,约 10 KB 以内为琥珀色,更大为红色。它编码了 HTTP/2 之后的共识,让你不必记住这些阈值。
内置解码器
Base64 → 图片标签页可反向操作:粘贴一段字符串或 data URI,即可获得实时预览、解码后的尺寸和 MIME 类型,以及一个重建原始文件的下载按钮。它能容忍缺失前缀和多余空白。
支持所有常见格式
PNG、JPG、GIF(保留动画)、WebP、SVG、ICO 和 BMP——支持时还包括 AVIF。原始字节按原样编码,因此透明度、动画和矢量缩放都原封不动地保留下来。
示例
PNG 转 Data URI(可直接用于 CSS / HTML)
transparent-1x1.png (一张 68 字节的 PNG)
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==
拖入一张 PNG,Data URI 标签页就会给出一段字符串,可直接粘贴到 HTML 的 src 或 CSS 的 url() 中。元数据栏会显示原始大小、Base64 大小以及精确的体积增加百分比。
在 HTML 中内联 SVG 图标
icon.svg
<img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0i…" alt="icon">
切换到 HTML 标签页即可获得一个可直接粘贴的 元素。对 SVG 而言,URL 编码通常比 Base64 更小——参见 FAQ 了解为什么 SVG 是个特例。
在 Markdown 中嵌入 JPG 图片
photo.jpg (12 KB)

Markdown 标签页会生成一个自包含的图片链接——非常适合 README 文件、GitHub issue 和 notebook 等无法托管外部文件的场景。当文件达到 12 KB 时,建议徽标变为琥珀色:需要在便利性与页面体积成本之间权衡。
如何将图片转换为 Base64
- 1
添加你的图片
把图片拖到拖放区、点击浏览文件,或用 Ctrl+V / Cmd+V 从剪贴板粘贴。PNG、JPG、GIF、WebP、SVG、ICO 和 BMP 均受支持,并完全在你的浏览器中完成编码。
- 2
选择输出格式
从标签页中选择 Data URI、原始 Base64、HTML
、CSS 背景、Markdown 或 JSON。查看元数据栏了解体积增幅,查看建议徽标判断内联是否值得。
- 3
复制或下载
点击「复制」获取代码片段,或点击「下载」将其保存为文件。要反向操作,切换到 Base64 → 图片标签页,粘贴一段字符串并下载重建后的图片。
常见误区
MIME 类型缺失或错误
data URI 必须声明正确的媒体类型,否则浏览器会拒绝渲染。编码了一张 PNG 却标成 image/jpeg,或干脆省略类型,都会产生一张坏图。直接从本工具复制 Data URI 或 HTML 输出,即可自动获得正确的前缀。
data:base64,iVBORw0KGgo… <!-- no MIME type — will not render -->
data:image/png;base64,iVBORw0KGgo… <!-- correct: image/png -->
字符串中的空白或换行
有些工具会按 RFC 2045 在 76 个字符处换行,复制粘贴也可能注入多余的空格或换行。在 HTML 属性或 CSS url() 中,这些换行会使 URI 失效。使用字符串前请去除空白——本工具的解码器会自动处理,因此过一遍 Base64 → 图片标签页就能把它清理干净。
data:image/png;base64,iVBORw0KGgoAAAANS UhEUgAAAAEAAAABCAYAAAA… <!-- embedded newline breaks the attribute -->
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAA… <!-- single unbroken line -->
字符串被截断(丢了填充)
Base64 字符串以零个、一个或两个 = 填充字符结尾。部分复制丢掉末尾的 =(或最后几个字符)会得到一个无法解码的字符串和一张坏图。如果粘贴后无法渲染,请确认你复制了完整的值,包括任何末尾填充。
…WjR9awAAAABJRU5ErkJggg <!-- missing trailing == -->
…WjR9awAAAABJRU5ErkJggg== <!-- complete with padding -->
把大照片转成 Base64
编码一张数百 KB 的照片会产生一个巨大的字符串,使你的 HTML 或 CSS 膨胀、无法被单独缓存,且解码缓慢。建议徽标正是为这种情况变红。请把大图作为普通文件提供;把 Base64 留给小资源,并先压缩。
/* 380 KB hero photo inlined into a global stylesheet */
.hero { background-image: url("data:image/jpeg;base64,/9j/…(½ MB of text)…"); } /* Serve it as a cached file instead */
.hero { background-image: url("/img/hero.jpg"); } 常见使用场景
- 在 CSS 中内联 Logo 或图标
- 拖入一个小 PNG 或 SVG 图标,复制 CSS background-image 代码片段,粘贴进你的样式表,即可为一个很少变化的资源省去一次 HTTP 请求。保持在约 2 KB 以下(注意绿色徽标),让样式表保持精简。
- 在 HTML 邮件中嵌入图片
- 邮件客户端常常拦截远程图片。把你的 Logo 编码为 data URI,并将
元素粘贴进模板,让它无需服务器请求就能渲染。要在各客户端测试——只嵌入小图标,而非照片。
- 自包含的 Markdown 和 README
- 当你无法托管图片时——GitHub issue、notebook、离线文档——Markdown 输出会把图片直接嵌入文件,使其随文本一同传递。非常适合小图表和徽章。
- JSON 或 API 载荷中的图片
- 需要在 JSON 文档或配置文件中传递一张缩略图?JSON 输出给你一个 { mime, data } 对象,可直接放入,而解码器会在另一端恢复出图片。
- 快速调试 data URI
- 在样式表或 API 响应中发现了一个神秘的 data: URI?把它粘贴进 Base64 → 图片标签页,看看它究竟是什么、读出它的真实尺寸,并把它作为普通文件下载以便仔细查看。
- 单文件小部件和书签脚本
- 书签脚本和可嵌入的小部件必须自包含、零外部依赖。把它们的图标内联为 Base64,可以让一切都待在一个文件里,无论被放到哪里都能正常工作。
技术细节
- Base64 编码的工作原理
- Base64 每次取图片二进制流的 3 个字节(24 位),将其拆成四组各 6 位,每组映射到 64 符号字母表中的一个字符。当输入长度不是 3 的倍数时,用一或两个 = 填充字符标记余数。这一 3 比 4 的比例正是编码后文本比源大约大 33% 的原因。工具直接根据字符串长度和填充计算出解码后的字节长度,因此它报告的大小数字是精确的,而非估算。
- MIME 检测与魔数字节
- 当你编码一个文件时,它的 MIME 类型来自浏览器的 File 对象。当你解码一段不带 data: 前缀的原始 Base64 时,工具会检查开头字符,它们对应图片的魔数字节:PNG 是 iVBORw0KGgo,JPEG 是 /9j/,GIF 是 R0lGOD,WebP 是 UklGR,SVG 是 PHN2Zy 或 PD94bWw。这让解码器即使在输入只是裸载荷时,也能重建正确的 data URI 并以正确的文件扩展名下载。
- 仅本地处理
- 编码使用 FileReader API 的 readAsDataURL,它返回一个完全在浏览器中合成的 data URI。供下载的解码使用 atob 加 Uint8Array 重建二进制,再用 Blob 和对象 URL——同样不涉及任何网络。其结果是一个你可以离线运行、可放心处理机密图片的工具,因为字节绝不离开页面。你可以在浏览器开发者工具中验证这种零请求行为。
最佳实践
- 只内联小而稳定的资源
- Base64 的最佳区间是约 2 KB 以下、很少变化且只出现在少数页面的资源——图标、小 Logo、UI 雪碧图。约 10 KB 以上时,体积代价和失去的缓存就超过了省下的请求,尤其在 HTTP/2 已让额外请求变得廉价的今天。让建议徽标指引你,把照片和大图作为普通可缓存文件提供。
- SVG 优先用 URL 编码
- SVG 是文本,所以 Base64 会让它膨胀且毫无收益。在 CSS 或 HTML 中内联 SVG 时,请改为对标记做 URL 编码——它通常更小、保持人类可读,并且对 gzip/brotli 压缩更友好。把 Base64 SVG 留给特别需要它的流程。我们的 URL 编码/解码工具 可处理百分号编码。
- 始终设置正确的 MIME 类型
- data URI 只有在其 MIME 类型与内容匹配时才会渲染:image/png、image/jpeg、image/gif、image/webp、image/svg+xml。类型写错或缺失是嵌入图片无法显示的头号原因。从本工具复制时,类型会为你设好;如果你手动拼接 URI,请仔细核对前缀。
- 先压缩再编码
- 由于 Base64 会在文件大小之上再加约 33%,先缩小源文件能让你获益两次。在编码前,把图片过一遍我们的 图片压缩工具——或以正确尺寸导出——让生成的 data URI 尽可能小。一张 4 KB 的压缩 PNG,无论作为文件还是内联,都胜过 40 KB 的原图。
- 切勿依赖 Base64 来保护隐私
- Base64 可被轻易逆向,不提供任何保护。不要用它来遮掩敏感图片内容——任何人都能瞬间解码,包括用本页的标签页。如果内容必须受保护,请在服务器端使用真正的访问控制和加密,并通过经过认证的端点提供图片。
常见问题
这个图片转 Base64 工具的作用是什么?
我的图片会被上传到服务器吗?
Base64 会让图片大多少?
什么时候该用 Base64 图片而不是普通文件?
什么时候不该用 Base64 图片?
如何在 HTML 和 CSS 中使用 Base64 输出?
支持哪些图片格式?
为什么 SVG 是个特例?
Base64 等同于加密吗?
我能在邮件中嵌入 Base64 图片吗?
为什么我的 Base64 图片无法显示?
相关工具
查看所有工具 →Base64 解码与编码工具
编码和格式化
免费在线 Base64 解码编码工具。实时转换,支持中文和 Emoji,100% 浏览器端运行,数据不离开设备,无需注册。
Base64 转图片转换工具
编码和格式化
在浏览器中把 Base64 字符串或 data URI 解码还原为图片。预览、读取尺寸与 MIME,再下载为 PNG、JPG、GIF、SVG。无需上传。
CSV 转 JSON 转换器
编码和格式化
在浏览器中将 CSV 转换为 JSON。支持 RFC 4180、类型推断、表头行、大整数安全。100% 隐私,无需上传。
JSON Diff 对比
编码和格式化
在浏览器中即时对比两份 JSON。Side-by-Side 高亮 + RFC 6902 JSON Patch 输出,一键忽略 timestamps、IDs 等噪音字段。100% 隐私保护,零上传。
JSON 格式化与验证工具
编码和格式化
在浏览器中即时格式化、验证和美化 JSON。免费在线工具,支持语法验证、错误检测、压缩和一键复制,100% 隐私保护。
JSON Schema 验证器
编码和格式化
在浏览器中即时校验 JSON 是否符合任意 JSON Schema。支持 Draft 2020-12、2019-09 与 Draft-07,错误信息精确定位到 JSON Pointer 路径。100% 隐私保护,零上传、零账号、永久免费。