← 返回首页

图片转 Base64

将图片转换为 Base64 编码,或将 Base64 字符串还原为图片。

图片转Base64 是什么?

图片转Base64工具把一张图片文件读成二进制,再按RFC 4648标准编码成只含A-Z、a-z、0-9、+、/和=的文本字符串,也可以反过来把Base64字符串还原成可下载的图片。它解决的是「不想额外发一个图片文件」的问题,比如做单文件HTML页面时,把一张3KB的小图标内联成data:image/png;base64,...写进CSS或img标签,页面就不用再请求外部图片。另一个常见场景是调接口时对方要求图片以Base64放在JSON字段里,你可以直接把PNG拖进来复制结果。注意Base64会让体积膨胀约33%,100KB的JPG编码后大约变成133KB文本。

使用步骤

  1. 打开页面,在「图片转Base64」区域点击选择文件或把图片拖进虚线框,支持JPG、PNG、GIF、WebP,单张建议不超过5MB。
  2. 上传后工具自动读取并编码,几毫秒内输出字符串,例如一张2.1KB的PNG会得到约2.8KB的Base64文本。
  3. 按需勾选是否带前缀:勾选后输出形如data:image/png;base64,iVBORw0KGgo...,可直接粘进img的src;不勾选则只有纯编码串。
  4. 点「复制」按钮把结果写入剪贴板,或点「下载」保存成.txt文件,避免手动全选时漏掉末尾的=号。
  5. 要反向还原时切到「Base64转图片」标签,粘贴字符串(可含data:前缀),点转换后预览并下载为PNG或JPG。

对比:用它还是手工做?

对比维度本工具手工/替代做法
操作耗时拖入即出结果,1MB图片约0.2秒用Python写base64.b64encode,需装环境、写脚本,约3-5分钟
体积变化自动显示原始大小与编码后大小,如100KB→133KB手工算需记住4/3系数,容易估错
前缀处理一键切换是否带data:image/png;base64,前缀手写前缀易拼错MIME类型,如把jpeg写成jpg
反向还原粘贴字符串直接预览并下载图片需用base64 -d命令或在线解码,多一步存文件
隐私本地处理,无网络上传部分在线工具会把图片传到服务器,存在泄露风险

常见问题

Base64会让图片变大多少?

按RFC 4648,每3字节原始数据编码成4个字符,体积变为原来的4/3,即约133.3%。例如一张100KB的JPG编码后约133KB,再算上data:image/jpeg;base64,这22个字符的前缀。所以超过200KB的图不建议内联,会明显拖慢HTML解析。

支持多大的图片?

浏览器端没有硬性上限,但受内存限制。实测Chrome下10MB的PNG编码约需1-2秒并占用约40MB内存,超过50MB容易卡顿甚至崩溃。建议单张控制在5MB以内,更大的图先用图片压缩工具处理。

GIF动图会变成静态吗?

不会。Base64只是编码方式,不解析图像内容,GIF的全部帧数据原样保留。把结果写进img的src,动图照常播放。但动图体积大,一个500KB的GIF编码后约667KB,内联进HTML并不划算。

为什么末尾有等号?

Base64按3字节一组编码,若原始数据长度不是3的倍数,就用=补齐。余1字节补2个=,余2字节补1个=。例如长度10字节的图片,10 mod 3 = 1,编码结果末尾会有两个==。粘贴时别删掉等号,否则解码会失败。

能直接放进CSS吗?

可以。写成background-image: url("data:image/png;base64,....")即可。但注意CSS文件里不能有换行,且IE8以下对data URI有32KB限制。现代浏览器单条data URI建议不超过2MB,否则样式表解析会变慢。

数据会上传到服务器吗?

不会。编码和解码全部用JavaScript的FileReader和atob/btoa在浏览器本地完成,图片不经过任何网络请求。你可以断网后打开页面测试,功能完全正常。关闭标签页后内存中的字符串即被释放。

适用于JPG、PNG、GIF、WebP四种格式,编码遵循RFC 4648标准,不改变像素数据,属于无损转换。体积会增大约33%,超过200KB的图片不建议内联进HTML或CSS。所有计算在浏览器本地完成,图片和字符串不会上传到任何服务器,断网可用。

浙ICP备2026073450号