PNG 转 Base64 转换器
最大 10 MB。不会上传任何内容——文件始终不离开你的设备。
可用于 <img src> 属性或 CSS 的 url()。
不含 data: 前缀——适用于 JSON 载荷和 API。
您的文件始终保密
这项转换完全在你的浏览器中完成。图片不会被上传,因此你在这里编码的任何内容都不会到达我们的服务器或其他任何人手中。
关于 PNG 转 Base64
PNG 是人们最常内联的格式——图标、logo、小尺寸雪碧图,以及那些若不内联便会各自消耗一次网络请求的界面碎片。把一个 PNG 编码成 Base64,就把它变成了可以直接粘进样式表或 HTML 属性的文本。这样做是否明智,几乎完全取决于文件有多小。
如何将 PNG 转换为 Base64
- 1 把 .png 文件拖到上传区域。
- 2 结果会立刻出现——不用点按钮,也不用等待。
- 3 复制你需要的形式:用于 HTML 和 CSS 的 data URI、用于 JSON 的原始字符串,或现成的 CSS 规则。
内联什么时候真的划算
页面上每一张独立的图片都要消耗一次请求,而请求的开销不止于它所携带的字节。对一个 1 KB 的图标来说,这份开销可能比文件本身还大,把它折进样式表就是实实在在的收益。粗略而言,几 KB 以下内联有帮助,超过十 KB 就开始有害。平衡点并不是一个固定数字——它随你的网络、服务器以及有多少资源在争抢带宽而移动——但这笔交易的本质始终不变:你用额外的字节换掉了一次往返。
你放弃了什么
三样东西,其中第二样最出人意料。第一是体积:编码后的文本比文件大约大三分之一。第二是缓存:内联的图片无法单独缓存,因此包含它的样式表每改动一次,它就要重新下载一次——而样式表的改动频率远高于一个 logo。第三,浏览器必须先解码字符串才能绘制;对图标来说微不足道,对大文件则可以测量出来。至少透明度会原封不动地保留:alpha 通道本就是 PNG 数据的一部分,Base64 会逐字节照抄。
图标请先考虑 SVG
如果你要编码的是扁平图标或简单 logo,SVG 通常在编码之前就比 PNG 小,编码之后差距更大——因为 SVG 本身就是文本,根本不需要 Base64。它还能适配任意屏幕密度,无需第二个文件。当画面包含照片级细节、柔和渐变或矢量难以表现的效果时,再选择 PNG——而且那时请在编码之前把它压小,而不是之后。Base64 会忠实地把你交给它的任何东西放大。