解码
☞ 全程在你的浏览器中运行 —— 不会上传任何图片解码结果
粘贴 base64 字符串或 data: URI,图片会显示在这里。
解码
粘贴字符串、看到图片、下载文件 —— 扩展名取自字节本身,不是前缀说了算。
解码结果
粘贴 base64 字符串或 data: URI,图片会显示在这里。
变回一个文件
Base64 是图片穿过「只能装文本的地方」时的形态:CSS 文件、JSON 报文、邮件正文、数据库字段。要把图片拿回来,就是把这串字符解成字节再交给你一个真正的文件 —— 这个页面做的就是这一件事。
直接粘贴裸字符串或整条 data: URI 都行 —— 前缀、换行、两边的引号,甚至整个 <img> 标签都没关系:解码前,base64 字母表以外的字符会被全部丢掉。
三步
裸的 base64、完整的 data: URI,或者直接从样式表、JSON 响应里复制的一行都行。空白和引号会被忽略,用 - 和 _ 代替 + 和 / 的 URL-safe 变体也认。
字节有效时图片会立刻出现。没出现通常是字符串被截断了 —— 复制到一半停下的串,解出来的字节已经不是一个能读的文件。
类型取自文件自身的魔数,而不是 data: 前缀。两者不一致时 —— 前缀是从别处复制来的时候就会这样 —— 以字节为准,页面也会告诉你。
快速解答
不用。带了会读,但真正的文件类型是从解出的字节判断的。裸的 base64 字符串效果完全一样。
PNG、JPG、GIF、WebP、BMP、ICO 和 SVG。前六种靠魔数识别;SVG 是文本,靠开头的标签识别。
因为字节是 JPEG。前缀对不上通常是复制粘贴的残留,而把这些字节存成 .png 会得到一个任何看图程序都打不开的文件。两者不一致时页面会给出提示。
几乎总是字符串被截断了 —— 从控制台或编辑器里复制时被截掉。检查一下你粘贴的结尾是否和原串的结尾一致,包括末尾的 = 号。
不会。字符串在你的浏览器里解码、文件也在本地生成,所以嵌在内部文档里的截图不会离开这台机器。
只受浏览器内存限制。Base64 比它编码的文件大约三分之一,所以一串很大的数据在「难以解码」之前,先会「难以粘贴」。
用「图片转 Base64」工具,它会同时给出裸字符串和现成的 data: URI。
免费,无水印。