图片转 Base64
把图片转换为 Base64 / Data URI,便于直接嵌入 HTML 的 img 标签与 CSS 背景,一键复制,全程本地处理。
使用说明
- 将图片拖入虚线框,或点击虚线框从本地选择文件,支持 PNG、JPG、WebP、GIF 等常见格式。
- 工具会自动把图片转换为 Data URI 字符串,例如
data:image/png;base64,……。 - 在「输出内容」中选择完整 Data URI,或仅保留 Base64 内容(去掉 data: 前缀)。
- 点击结果区右上角「复制」按钮即可复制到剪贴板,也可以点击「下载为 .txt」保存文本文件。
常见问题
Data URI 可以直接用在哪里?
为什么我的图片转出来特别长?
仅 Base64 模式是什么意思?
我的图片会上传到服务器吗?
使用步骤
- 把图片放入虚线框
点击或拖拽把图片放入虚线框,PNG、JPG、WebP、GIF 等常见格式均可。文件载入后转换自动完成。
- 选择输出内容模式
输出内容有两种模式。完整 Data URI 可直接用于 img 的 src 或 CSS 背景;仅 Base64 则去掉前缀,便于自行拼接。
- 查看结果长度信息
结果区显示文件大小、结果长度(字符)与前缀内容。Base64 编码后约为原文件的 1.37 倍,可据此评估是否过大。
- 复制或下载字符串
点击结果框右上角的复制按钮一键复制,或用下载为 txt 按钮把字符串存成文本文件留作备用。
- 粘贴到代码里使用
把完整 Data URI 粘贴进 img 的 src 属性或 CSS 背景地址,即可直接显示。小图标、占位图与签名图最适合这样内联。
工具详细介绍
Base64 把二进制数据表示成纯文本:图片字节被重新分组,映射为 64 个安全字符,结果比原文件大约 1.37 倍。加上 data:image/png;base64, 这样的前缀就成了 Data URI。图片以内联字符串嵌进 HTML 或 CSS,省掉一次网络请求,也不依赖图床。本工具全部在浏览器本地完成编码,图片不会上传。
最常用的场景是几 KB 到几十 KB 的小图:邮件签名、按钮小图标、骨架屏占位图。内联后能减少请求数、加快首屏渲染,也适合离线页面或单文件演示携带图片。大图内联会让 HTML 与 CSS 明显膨胀,还会使缓存失效。几十 KB 以上的图片仍建议用外链文件引用。
原理与背景
1.37 倍这个数字可以精确解释。Base64 把每 3 个字节重排成 4 个字符,每个字符携带 6 比特,体积先膨胀到 4/3 ≈ 1.333 倍。加上 data: 前缀与末尾补位等号,实际约 1.37 倍。编码是无损的,只换写法不做压缩,原图字节都能还原。字符表只有大小写字母、数字、加号与斜杠,全部是各协议层都不会篡改的安全字符。这类字符串可以放心放进 HTML 属性、CSS 值甚至 JSON 字段里直接传输。
内联与外链真正的差别在缓存。外链图片是独立请求,能被浏览器单独缓存并跨页面复用;内联字符串焊在文档里,页面每次加载都随文档重新下载。经验法则是几 KB 的关键小图内联,几十 KB 以上或反复出现的图走外链。骨架屏占位图、小图标和邮件签名都落在这个区间。HTTP/2 降低了请求成本,缓存逻辑没有变,全页内联会让页面越改越慢,改动一个图标就得重新下发整份文档。
典型使用场景
- 给骨架屏内联模糊占位
把缩到二十像素宽的模糊小图转成 Data URI 写进页面,真实图片加载前先显示色块占位。网络再差也几乎瞬时出现,主流产品的模糊加载就是这样实现的。
- 小面积背景纹理与噪点
几十字节的重复渐变与噪点纹理内联进 CSS,省一次请求也免掉一个容易写错的路径。纹理本身体积小,膨胀 1.37 倍后在样式表里仍可忽略。
- 地址栏直接预览验证
把 Data URI 粘进浏览器地址栏回车,图片立刻显示,不起本地服务器就能确认编码完好。排查复制粘贴中字符串损坏的问题时,这一招最快。
使用技巧
- 只需要编码体时切换到仅 Base64 模式,省去手动删前缀的麻烦。
- 内联前先压缩图片,几 KB 的图标远比几十 KB 的截图更适合 Base64。
- Data URI 字符串很长,粘贴进编辑器时注意别被自动换行截断。
注意事项
- Base64 并非加密
任何人拿到字符串都能立刻还原出图片,放进页面等于公开发布。含敏感内容的截图不要以为转成 Base64 就安全了,需要控制的素材仍要走鉴权链路。
- MIME 前缀要与内容一致
data:image/png 开头的串装着 JPEG 字节时,多数浏览器靠嗅探仍能显示。校验严格的解析器会直接拒绝,前缀由工具按实际格式生成,手工拼接别写错。
- CSP 拦截内联图片
站点设置了 img-src 或 style-src 白名单时,data: 协议不在名单里就会被策略拦下。图片显示为裂图,需要内联就请管理员在策略里显式加入 data:。