UltKit

图片转Base64在线工具

把图片文件转成一行文本,可粘贴到HTML、CSS、JSON请求或Markdown文件中;前面已加好Data URI前缀,粘贴即可生效。

数据转换器

或将CSV, TSV, TXT … 文件拖放到此处 ·

单个文件最大 95 MB· 最多 20 个文件· 30 分钟后删除

输出

文件在我们的服务器上处理,并在 30 分钟后删除。

使用方法

  1. 1

    添加图片

    将 PNG、JPG、GIF、WebP 或 SVG 文件拖到上传区域,一次最多 20 个,每个不超过 95 MB。

  2. 2

    保留或去掉前缀

    Data URI 前缀默认开启,因此结果会以 data:image/png;base64, 或对应的类型开头。如果 API 只需要纯 Base64 字符串,请在高级设置中关闭它。

  3. 3

    转换并复制

    点击转换为 Base64 文本,每张图片会下载一个 .txt 文件,可直接粘贴到代码中。

上传图片,点击转换为 Base64 文本。你会得到编码成普通字符的文件,以 data:image/…;base64, 开头,可直接用于 img 的 src 或 CSS 的 url()。图片本身不会有任何变化。

图片转Base64的用途

Base64 定义于 RFC 4648(2006),把每 3 个字节的二进制数据映射为 4 个字符,字符取自由 A–Z、a–z、0–9、+ 和 / 组成的 64 字符字母表。结果可以通过任何面向文本的通道传输。Larry Masinter 于 1998 年在 RFC 2397 中写下的 Data URI 方案,则让浏览器能把这段文本当作文件处理。

前端开发者会内联小图标、加载动画和占位图,让页面无需额外请求即可渲染。后端开发者会在 JSON 中传送图片,因为包括视觉和 OCR 服务在内的许多 API 都接受 Base64 字段形式的图片。测试人员把测试数据保存在源代码中,制作单文件 HTML 报告或 Markdown 笔记的人则嵌入截图,使文件在邮件发送或归档时保持独立完整。

Base64输出结果是什么样的

img 标签中以 Data URI 形式嵌入的 1 × 1 透明 PNG(68 字节)
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR4nGNgAAIAAAUAAXpeqz8AAAAASUVORK5CYII=" width="1" height="1" alt="1 像素示例图">

PNG 图标文件

24 KB

常见工具栏图标集,96 × 96 px

大小增加 33%,画质零变化

Base64 文本

32 KB

每 3 字节 4 个字符,外加前缀

ANY I

任意图片

此工具支持常见的图片格式,包括 JPG、PNG、WebP、HEIC、GIF、BMP 和 TIFF。系统会自动从文件中识别格式,因此您不需要知道图片的类型。

Any image 转换器

BASE64

Base64 编码文本

Base64 是 RFC 4648 中定义的一种编码,可把任意二进制数据转换为由 64 个安全文本字符组成的字符串。它用于在 HTML 和 CSS 中以 data URI 嵌入图片、给邮件添加附件,以及在 JSON 或 XML 中传输二进制数据。编码完全可逆,但会使数据增大约 33%。Base64 不是加密,没有任何安全性,任何人都可以解码。

压缩方式
无损
透明度
–
动画
–
发布年份
–
BASE64 转换器

当图片必须放进只能承载文本的地方时,就需要转成 Base64 文本:不想单独发请求的 HTML 或 CSS 文件、API 调用的 JSON 字段、测试数据,或单文件报告。

内嵌图片何时对网页有利,何时有害

内联可以省去一次请求,这在 HTTP/1.1 时代最有价值,因为当时浏览器对每个站点只能打开少量连接。有了 HTTP/2 和 HTTP/3 的多路复用,额外的小请求成本很低,好处随之减少,代价却依然存在:编码后的图片无法单独缓存,每当 HTML 或 CSS 变化都要重新下载,还会拖慢所在文件的解析。

合理的做法是只内联每个页面都会出现、只有几 KB 的图片,例如徽标或图标雪碧图,其余都作为文件提供。照片几乎都不适合内联。如果你真正需要的是另一种文件类型而不是文本,可以使用图片格式转换。

Base64 图片的优点

  • HTML、CSS 或 JSON 单文件即可自包含
  • 微小图标无需额外请求
  • 可安全放入 JSON、XML 等文本格式
  • 无损且可逆

Base64 图片的代价

  • 比二进制文件大约大 33%
  • 浏览器无法单独缓存
  • 许多邮件客户端会屏蔽此类图片
  • 在代码差异比对中难以审查

图片转Base64常见问题

Base64和Data URI有什么区别?

Base64 只是编码后的字符。Data URI 则在这些字符前加上协议和类型,即 data:image/png;base64, 后接字符,浏览器才知道如何解码并显示。HTML 和 CSS 需要完整的 Data URI;大多数 JSON API 只需要纯 Base64 部分。

图片转成Base64后会变大多少?

Base64 每 3 个字节写成 4 个字符,所以文本比原文件大约多三分之一,再加上很短的前缀。30 KB 的 PNG 会变成约 40 KB 的文本。如果 HTML 或 CSS 以 gzip 压缩方式传输,这部分额外开销在传输时能挽回一些。

Base64图片能用在邮件签名里吗?

不可靠。Gmail 不显示 Data URI 图片,一些桌面邮件客户端也会将其去除,收件人只会看到破损图标。请把图片放在网络服务器上或作为附件发送,Base64 留给网页和应用使用。

SVG图标需要转成Base64吗?

可以用,但 SVG 本身就是文本。对标记做 URL 编码而不是 Base64 编码,通常得到的 Data URI 更短,也保持可读。如果图片比小图标大,使用浏览器可缓存的独立 SVG 文件更合适。

Base64文本能转回图片吗?

可以。这种编码是无损且完全可逆的:解码后得到与原文件完全相同的字节。每种编程语言都自带解码器,把完整的 Data URI 粘贴到浏览器地址栏也能显示图片。

编码会影响图片质量吗?

不会。Base64 改变的是字节的写法,而不是像素。想让字符串更短,请先缩小图片,例如用压缩图片到 20 KB,再对更小的文件编码。