使用方法
- 把 Base64 文本或 data:image/jpeg;base64 URI 粘贴到输入框。
- 确认预览、识别出的格式和图片尺寸。
- 下载格式已默认选中 JPG。拖动质量滑块:数值越高细节越多,数值越低文件越小。
- 下载 .jpg 文件。如果想原封不动地保留已有的 JPEG,请改选“原始文件”。
Base64 JPEG 长什么样
所有 JPEG 文件都以字节 FF D8 FF 开头,因此其 Base64 总是以 /9j/ 起始。后面的字符还能透露文件来源:/9j/4AAQSkZJRg 是普通的 JFIF 图片,/9j/4Q 通常表示由相机或手机写入的 Exif 头。移动应用上传、表单提交、CMS 导出、邮件附件以及 REST 接口中的照片字段,都常见 Base64 JPEG。
JPG 和 JPEG 是同一种格式,较短的扩展名源于 MS-DOS 时代扩展名最多只能有三个字符的限制。正确的 MIME 类型是 image/jpeg。本工具读取的是字节本身,所以即使 data URI 标成 image/jpg 或 image/png,也能正确解码。
质量、透明背景与元数据
JPEG 是有损格式,每重新编码一次都会多损失一些细节。如果输入本来就是 JPEG,而你只需要拿到文件,请选择原始,这样就不会再压缩一遍。需要把 PNG、WebP 等格式转成 JPEG,或者想缩小一张大照片时,再使用 JPG 选项。质量设在 80% 到 90% 左右,通常能在体积和清晰度之间取得平衡。
用 Node.js 解码 Base64 JPEG
const fs = require('fs');
// 如有 data URI 前缀,先去掉
const b64 = input.replace(/^data:[^,]+,/, '');
fs.writeFileSync('photo.jpg', Buffer.from(b64, 'base64'));
如需反向转换,JPG 转 Base64 可以把照片编码为字符串或 data URI。
常见问题
JPG 和 JPEG 有区别吗?
image/jpeg。如果某个程序只认其中一种,直接改扩展名即可。为什么透明背景变成了白色?
JPEG 无法存储透明信息,所以转换器会在编码前把透明像素填充为白色。想保留透明背景,请选择 PNG 或 WebP。
怎样避免画质损失?
如果 Base64 数据本身就是 JPEG,请以“原始文件”格式下载,得到完全相同的字节。重新编码为 JPG 时,即使质量设得很高,也总会带来一些损失。
照片会保留 Exif 信息吗?
只有选择“原始文件”时才会保留。转换得到的 JPG 只包含像素数据,这也是分享照片前去除位置信息的简便方法。