解码

Base64 转图片

粘贴字符串、看到图片、下载文件 —— 扩展名取自字节本身,不是前缀说了算。

解码

☞ 全程在你的浏览器中运行 —— 不会上传任何图片

解码结果

粘贴 base64 字符串或 data: URI,图片会显示在这里。

变回一个文件

把字符串还原成图片

Base64 是图片穿过「只能装文本的地方」时的形态:CSS 文件、JSON 报文、邮件正文、数据库字段。要把图片拿回来,就是把这串字符解成字节再交给你一个真正的文件 —— 这个页面做的就是这一件事。

直接粘贴裸字符串或整条 data: URI 都行 —— 前缀、换行、两边的引号,甚至整个 <img> 标签都没关系:解码前,base64 字母表以外的字符会被全部丢掉。

三步

怎么把 base64 解码成图片

01

把带着字符串的东西整段粘进来

裸的 base64、完整的 data: URI,或者直接从样式表、JSON 响应里复制的一行都行。空白和引号会被忽略,用 - 和 _ 代替 + 和 / 的 URL-safe 变体也认。

02

看一眼预览

字节有效时图片会立刻出现。没出现通常是字符串被截断了 —— 复制到一半停下的串,解出来的字节已经不是一个能读的文件。

03

用正确的扩展名下载

类型取自文件自身的魔数,而不是 data: 前缀。两者不一致时 —— 前缀是从别处复制来的时候就会这样 —— 以字节为准,页面也会告诉你。

快速解答

Base64 解码常见问题

一定要带 data:image/png;base64, 这段吗?

不用。带了会读,但真正的文件类型是从解出的字节判断的。裸的 base64 字符串效果完全一样。

能识别哪些格式?

PNG、JPG、GIF、WebP、BMP、ICO 和 SVG。前六种靠魔数识别;SVG 是文本,靠开头的标签识别。

前缀写着 PNG,你却存成了 JPG,为什么?

因为字节是 JPEG。前缀对不上通常是复制粘贴的残留,而把这些字节存成 .png 会得到一个任何看图程序都打不开的文件。两者不一致时页面会给出提示。

粘贴之后什么都没出现,是哪里不对?

几乎总是字符串被截断了 —— 从控制台或编辑器里复制时被截掉。检查一下你粘贴的结尾是否和原串的结尾一致,包括末尾的 = 号。

我的数据会被上传吗?

不会。字符串在你的浏览器里解码、文件也在本地生成,所以嵌在内部文档里的截图不会离开这台机器。

有大小限制吗?

只受浏览器内存限制。Base64 比它编码的文件大约三分之一,所以一串很大的数据在「难以解码」之前,先会「难以粘贴」。

反过来怎么做?

用「图片转 Base64」工具,它会同时给出裸字符串和现成的 data: URI。

这个工具免费吗?

免费,无水印。