Base64 转 JPG

粘贴包含照片或其他图片的 Base64,保存为 .jpg 文件。选择“原始文件”可逐字节保留 JPEG,选择 JPG 则按你设定的质量重新编码。

完全在浏览器中运行,不会上传任何数据。

使用方法

  1. 把 Base64 文本或 data:image/jpeg;base64 URI 粘贴到输入框。
  2. 确认预览、识别出的格式和图片尺寸。
  3. 下载格式已默认选中 JPG。拖动质量滑块:数值越高细节越多,数值越低文件越小。
  4. 下载 .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% 左右,通常能在体积和清晰度之间取得平衡。

  • 透明背景。JPEG 没有 Alpha 通道,透明区域会被填充为白色。如需保留透明,请使用 PNG 或 WebP。
  • 元数据。转换时只重新绘制像素,相机型号、GPS 位置等 Exif 信息不会保留。“原始文件”则会连同元数据完整保存文件。

用 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 有区别吗?
没有区别。两种扩展名对应同一种格式和同一个 MIME 类型 image/jpeg。如果某个程序只认其中一种,直接改扩展名即可。
为什么透明背景变成了白色?

JPEG 无法存储透明信息,所以转换器会在编码前把透明像素填充为白色。想保留透明背景,请选择 PNG 或 WebP。

怎样避免画质损失?

如果 Base64 数据本身就是 JPEG,请以“原始文件”格式下载,得到完全相同的字节。重新编码为 JPG 时,即使质量设得很高,也总会带来一些损失。

照片会保留 Exif 信息吗?

只有选择“原始文件”时才会保留。转换得到的 JPG 只包含像素数据,这也是分享照片前去除位置信息的简便方法。