Skip to content
图片转 Base64
Tools

图片转 Base64

将图片编码为 Base64 数据 URI,并解码还原为图片。

Runs entirely in your browser. Nothing is uploaded.

在线图片转Base64编码

这款免费的图片转Base64工具可直接在浏览器中将任意图片转为Base64字符串或数据URI,无需上传、无需注册、无需安装任何软件。拖入文件、点击浏览、从剪贴板粘贴或输入图片URL,即可立即获得可直接复制的data:image/…;base64,…字符串,以及对应的CSS、HTML和Markdown代码片段。

该工具支持双向转换:既可将图片编码为Base64,也可切换标签页将Base64字符串解码为可预览、可下载的图片。由于整个工具完全在客户端运行,使用浏览器内置的FileReader和Canvas API,您的图片始终不会离开您的设备——非常适合处理私密Logo、截图和未发布的设计稿。这与base64.gurubase64encoder.io等工具形成鲜明对比,后者会将您的图片上传到远程服务器进行处理。

如何将图片转为Base64编码

1. 将图片拖放到上传框中,或点击选择文件、粘贴图片、输入图片URL。2. 工具在本地读取文件并立即生成Base64数据URI,同时显示原始大小、编码后大小及图片尺寸。3. 按需复制输出内容——原始Base64、完整数据URI、CSS background-image 规则、HTML <img> 标签或Markdown格式——也可下载为 .txt 文件。

若需反向操作,打开Base64 → 图片标签页,粘贴数据URI或原始Base64字符串,工具将自动解码并预览图片,支持一键下载并自动识别正确的文件格式。完整的编码再解码流程可验证您的Base64输出是否有效且完整。

在HTML、CSS、Markdown和邮件中嵌入Base64图片

Base64数据URI可让您将图片直接以文本形式嵌入代码中,无需链接外部文件。在HTML中,将字符串填入图片标签的src属性;在CSS中,将其放入url("…")作为背景;在Markdown中,使用图片语法![描述](data:image/png;base64,…)。这样可以减少一次HTTP请求,非常适合小图标、单文件页面和离线演示。

内联图片在HTML邮件中尤为常见——将图片打包进邮件可避免图片链接失效和"下载图片"提示,但Outlook等部分邮件客户端可能会屏蔽Base64图片,请务必提前测试。开发者也常将小型Base64图片存储在JSON数据、数据库和配置文件中,以避免使用二进制文件带来的不便。

在JavaScript和Python中实现图片转Base64

在JavaScript中,浏览器原生支持该操作:const r = new FileReader(); r.onload = () => use(r.result); r.readAsDataURL(file); 即可获得完整的数据URI。在React中,将此逻辑封装在文件输入的onChange处理函数中;在Next.js中,还可以通过Node.js的Buffer.from(bytes).toString('base64')在服务端编码图片。本工具正是使用FileReader API实现的,因此复制的结果与您自己代码的输出完全一致。

在Python中,使用base64模块对原始字节进行编码:base64.b64encode(open('image.png','rb').read()).decode(),然后拼接前缀data:image/png;base64,即可。使用Pillow(PIL)时,先将图片保存到BytesIO缓冲区,再对缓冲区内容进行Base64编码。使用本工具可快速验证输出结果,无需运行脚本。

竞品对比:UtiloKit vs base64.guru、base64encoder.io、browserling

base64.guru 是访问量较大的Base64工具之一,但它会将您的图片上传至其服务器——对于Logo、产品原型图或机密文件来说存在明显的隐私风险。base64encoder.io 同样在服务端处理文件。Browserling 的图片转Base64工具也是服务端处理,且免费用户受文件大小(免费版最大75 MB)和每日转换次数的限制。

UtiloKit完全在浏览器中运行,文件大小仅受设备内存限制,无每日次数限制,数据不离开您的设备。您可以获得同样有效的数据URI,还额外附带上述工具所不提供的CSS、HTML和Markdown代码片段。对于处理专有资产的团队而言,隐私层面的差异尤为显著:服务器永远看不到您的图片。

何时使用Base64——以及何时不该使用

Base64非常适合体积小、不常变动的资源,但并非没有代价:编码后的文本比原始文件大约33%,且内联图片无法单独缓存或懒加载。对于大型照片或在多个页面复用的图片,普通图片文件(配合HTTP缓存)加载速度更快。一般经验法则是:将10 KB以下的小图标和Logo内联,体积更大的图片保持为普通文件形式。

无论是将图片编码为Base64字符串、将Base64解码还原为图片,还是仅需检查某个数据URI,本工具都快速、私密且完全免费——每次转换都在您的设备上完成。支持iPhone、iPad、Android及所有主流桌面浏览器,无需安装任何程序。

Frequently asked questions

如何将图片转为Base64编码?

将图片拖放到上方的框中、点击浏览选择文件、从剪贴板粘贴,或输入图片URL进行加载。工具会立即将图片转换为Base64字符串,并提供可直接复制的CSS、HTML和Markdown格式数据URI。整个过程在您的浏览器中完成——图片永远不会上传到任何服务器,非常适合处理私密或敏感图片。

如何将Base64解码还原为图片?

切换到「Base64 → 图片」标签页,粘贴数据URI(data:image/png;base64,…)或原始Base64字符串。工具会自动解码并预览图片,支持下载为文件。系统会自动识别格式,PNG、JPG、SVG、WebP和GIF均可正常处理。解码过程完全在本地浏览器中完成——不会发送任何服务器请求,您的Base64字符串不会传输到任何地方。

如何在HTML中嵌入Base64图片?

将Base64数据URI作为img标签的src属性值:在src中填入编码字符串,格式为 src="data:image/png;base64,…"。点击上方的「复制 <img>」按钮,即可获得一个完整、可直接粘贴的图片标签,无需额外的文件请求——非常适合邮件、单文件页面和内联图标。这样可以减少一次HTTP往返请求,即使原始图片文件不可用也能正常显示。

如何在CSS中使用Base64图片?

在url()中引用数据URI,例如 background-image: url("data:image/png;base64,…")。点击上方的「复制CSS」按钮,即可获得完整的background-image规则。以这种方式内联小型背景图和图标可以减少一次HTTP请求,常见于设计系统图标、加载动画和不常变动的装饰元素,也能使单文件HTML演示完全自包含。

如何用JavaScript将图片转为Base64?

在浏览器中,使用FileReader API读取文件:const reader = new FileReader(); reader.onload = () => console.log(reader.result); reader.readAsDataURL(file)。reader.result即为完整的data:image/...;base64 URI。在React或Next.js中,在useEffect或文件输入元素的onChange处理函数中调用此方法即可。本转换工具正是采用这种方式,完全在客户端实现。您可以利用此工具快速验证自己的JavaScript实现,无需搭建本地服务器。

如何用Python将图片转为Base64?

以二进制模式打开文件并编码:import base64; data = base64.b64encode(open('image.png', 'rb').read()).decode(); uri = f'data:image/png;base64,{data}'。使用PIL/Pillow时,可先将图片保存到BytesIO缓冲区,再对缓冲区的字节内容进行base64编码。在将Base64字符串嵌入生产代码前,可使用本工具快速验证Python的输出结果是否符合预期。

Base64图片和数据URI有什么用途?

数据URI将图片字节直接以文本形式嵌入HTML、CSS、JSON或邮件中,使图片随文档一起加载,而无需单独发起HTTP请求。它非常适合用于小图标、HTML邮件中的Logo、单文件演示,以及在数据库或配置文件中存储小型图片。开发者也常用它来规避在同一页面Canvas操作中加载图片时的CORS限制。Favicon常以数据URI嵌入HTML head中,以消除首次加载时的额外网络请求。

应该将大图片也内联为Base64吗?

通常不建议。Base64编码会使数据量比原始二进制大约增加33%,且内联图片无法被浏览器单独缓存,也无法使用 loading="lazy" 懒加载。Base64适合小型、不常变动的资源,如favicon、小Logo或体积在10 KB以下的图标精灵。对于大型照片、主视觉图或在多个页面复用的资源,请保持为普通图片文件形式,并配合正确的HTTP缓存响应头使用。

在这里转换图片安全吗?

完全安全。编码和解码均完全在您的浏览器中运行,使用FileReader和Canvas API——您的图片永远不会离开您的设备,也不会发送到任何服务器。这是相对于<strong>base64.guru</strong>和<strong>base64encoder.io</strong>等工具的重要隐私优势,后者会将您的图片上传到其服务器进行处理。在UtiloKit上,私密、机密或未发布的图片在整个转换过程中始终保存在您的设备上。您甚至可以在页面加载完成后断开网络连接,工具依然可以正常使用。

支持哪些图片格式?

凡是您的浏览器能读取的格式均可编码,包括PNG、JPEG/JPG、SVG、WebP、GIF、AVIF、BMP和ICO。解码支持所有标准的 data:image/* MIME类型,并在下载前预览结果。SVG文件有特殊处理——其Base64也可以直接在CSS中使用 url('data:image/svg+xml,…') 配合URL编码嵌入,无需转为Base64,但Base64更具通用性,在所有浏览器和邮件客户端中均可使用。

可以在Markdown或邮件中嵌入Base64图片吗?

可以。使用「复制Markdown」按钮获取 ![描述](data:image/png;base64,…) 格式,或使用「复制 <img>」获取HTML邮件格式。请注意,部分邮件客户端(尤其是Outlook和Gmail移动端)会过滤或屏蔽Base64图片,因此在面向大量用户发送前请务必先测试。对于批量营销邮件,建议将图片托管在CDN上并链接引用。对于单收件人的事务性邮件,Base64在大多数客户端中均可可靠使用。

UtiloKit与base64.guru或base64encoder.io相比有何优势?

base64.guru和base64encoder.io均在服务端处理图片——您的文件会被上传到其服务器。UtiloKit的图片转Base64工具100%在您的浏览器中运行:无需上传、无服务器、不存储任何数据。UtiloKit还提供可直接粘贴的CSS、HTML和Markdown代码片段,支持双向转换(编码和解码),并且在页面加载后可离线使用。此外完全免费,对文件大小和转换次数均无限制。

这个图片转Base64工具免费吗?

完全免费,无需注册,无水印,对文件大小和转换数量均无限制。与browserling.com不同——后者对免费用户的图片转换次数和文件大小有上限,超出需付费——UtiloKit没有任何使用限制。由于工具运行在客户端,不产生任何按图片计费或流量费用,您可以转换任意数量的图片,上限仅为您设备的内存容量。

可以在iPhone或Android上使用吗?

可以。本工具完全响应式,支持所有移动浏览器,包括iPhone上的Safari和Android上的Chrome。您可以点击从相册或文件应用选择图片,也可以粘贴URL来加载远程图片。输出内容会复制到剪贴板,可直接粘贴到Notion、代码编辑器或其他应用中。无需下载任何应用——直接在移动浏览器中打开页面,使用体验与桌面端完全一致。

Related tools

查看全部工具