
在日常处理图片的过程中,你一定见过 .jpg 和 .jpeg 这两种后缀的图片文件。
很多人第一次看到就会纳闷了:它们之间到底有什么区别?是不同的图片格式,还是怎么的?
今天我们用简单易懂的方式,帮你彻彻底底搞明白这个问题。
首先,JPEG 并不是一个文件后缀,它是一个图片压缩标准的名字,全称是:
JPEG = Joint Photographic Experts Group(联合图像专家组)
这个标准在 1992 年被广泛应用,用来对照片进行有损压缩,让文件体积变小的同时尽量保留肉眼可见的细节。
那么 .jpeg 和 .jpg 就是使用了这个标准的图片文件后缀名。
.jpg 这种缩写?这里要回到计算机历史。
早期的 Windows(尤其是 MS-DOS 系统)规定,文件名必须是 8.3 格式:
.jpeg 有 4 个字符,所以在 Windows 时代就被缩短成 .jpg。
而在当时的 macOS(以及 Unix 系统)没有这个限制,所以保留了 .jpeg 的后缀。
小结: Windows 老系统 →
.jpgmacOS / Linux →.jpeg
答案是:是的,在绝大多数情况下,它们完全一样。
不管是 .jpg 还是 .jpeg,它们都符合 JPEG 压缩标准,能被相同的应用程序识别、打开和编辑。现在的操作系统对文件后缀长度没有限制,所以你可以随便用其中一个。
虽然对用户来说没区别,但就底层来说,它们之间也没啥区别。哈哈,是不是感觉听君一席话,浪费 3 秒钟?
.jpg 与 .jpeg 文件大小、画质一模一样。唯一可能的区别是——某些老旧软件可能只识别 .jpg 或 .jpeg 中的一种(但这种情况现在几乎不存在了)。
既然说它们是一样的,我们可以用一段简单的 JavaScript 来验证一下:
// 假设有两个文件:test.jpg 和 test.jpeg
// 我们用 Node.js 来读取它们的字节信息
const fs = require('fs');
function readFileBytes(filePath) {
const buffer = fs.readFileSync(filePath);
// 读取前 10 个字节
return buffer.slice(0, 10);
}
const jpgBytes = readFileBytes('test.jpg');
const jpegBytes = readFileBytes('test.jpeg');
console.log('JPG 文件头:', jpgBytes);
console.log('JPEG 文件头:', jpegBytes);
// 比较文件头是否相同
console.log('文件头是否一致?', jpgBytes.equals(jpegBytes));运行结果(示例):
JPG 文件头: <Buffer ff d8 ff e0 00 10 4a 46 49 46>
JPEG 文件头: <Buffer ff d8 ff e0 00 10 4a 46 49 46>
文件头是否一致? true从文件头可以看出,.jpg 和 .jpeg 的二进制标识完全相同,证明它们本质是同一种格式。
.jpg,兼容性更好。.jpg 是 .jpeg 的缩写,源于早期 Windows 对文件名长度的限制。一句话总结所有:JPG 和 JPEG 其实就是一个东西,只是历史原因让它们有两个名字,仅此而已了。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。