“JPG”/“JPEG”/“PNG”/“BMP”/“GIF”/“TIFF”图像有啥区别?

Posted

技术标签:

【中文标题】“JPG”/“JPEG”/“PNG”/“BMP”/“GIF”/“TIFF”图像有啥区别?【英文标题】:What is the difference between "JPG" / "JPEG" / "PNG" / "BMP" / "GIF" / "TIFF" Image?“JPG”/“JPEG”/“PNG”/“BMP”/“GIF”/“TIFF”图像有什么区别? 【发布时间】:2010-09-29 23:51:26 【问题描述】:

我见过很多类型的图片扩展,但从未了解它们之间的真正区别。是否有任何链接可以清楚地解释它们之间的差异?

在选择要在应用程序中使用的特定图像类型时,是否需要考虑一些标准?我们在 Web 应用程序中使用什么?

【问题讨论】:

代表比我更好的人应该仔细阅读这些答案并巩固它们。 这是你的答案:***.com/questions/2336522/… 该问题已关闭,最终可能会被删除。 same answer is below 应该被接受回答 IMO。 【参考方案1】:

JPG > 联合摄影专家组

1 JPG 图片支持 1600 万色,最适合照片和复杂图形

2 JPG 不支持透明度。

PNG > 便携式网络图形

1 当 GIF 技术受版权保护且需要获得使用许可时,它被用作 GIF 文件格式的替代品。

2 PNG 的压缩率比 GIF 高 5% 到 25%,并且颜色范围更广。 PNG 使用二维交错,这使得它们的加载速度是 GIF 图像的两倍。”

3 具有多种颜色或需要高级可变透明度的图像,PNG 是首选文件类型。

GIF > 图形交换格式

1 将图像中的颜色数量减少到 256。

2 GIF 也支持透明度。

3 GIF 具有显示一系列图像的独特能力,类似于视频,称为动画 GIF。

4 如果图像的颜色很少且不需要任何高级的 alpha 透明效果,GIF 是最好的选择。

SVG > 可缩放矢量图形

1 SVG 是一种基于 XML 的网络标准,它在二维中描述静态图像和动画。

2 SVG 允许您创建质量非常高的图形和动画,它们不会随着尺寸的增加/减小而丢失细节。

【讨论】:

【参考方案2】:

命名的都是光栅图形,但除此之外不要忘记越来越重要的矢量图形。 有压缩和未压缩类型(或多或少),但它们都是无损的。最重要的是:

SVG / SVGZ EPS EMF / (WMF)

【讨论】:

【参考方案3】:

是的。它们是不同的文件格式(及其文件扩展名)。

每种格式的***条目都会为您提供大量信息:

JPEG(或 JPG,用于文件扩展名;联合摄影专家组) PNG(便携式网络显卡) BMP(位图) GIF(图形交换格式) TIFF(或 TIF,用于文件扩展名;标记图像文件格式)

图像格式可以分为三大类:

有损压缩, 无损压缩, 未压缩,

未压缩格式占用的数据量最多,但它们是图像的精确表示。 BMP 等位图格式通常是未压缩的,但也有压缩的 BMP 文件。

Lossy compression 格式通常适用于照片。它不适合插图、绘图和文本,因为压缩图像的compression artifacts 会脱颖而出。有损压缩,顾名思义,不会对文件的所有信息进行编码,所以当恢复成图像时,它不会是原始图像的精确表示。但是,与无损格式相比,它能够非常有效地压缩图像,因为它会丢弃某些信息。有损压缩格式的一个主要示例是 JPEG。

Lossless compression 格式适用于插图、绘图、文本和其他在使用有损压缩时看起来不太好看的材料。顾名思义,无损压缩将对原始图像中的所有信息进行编码,因此当图像解压缩时,它将是原始图像的精确表示。由于无损压缩不会丢失信息,因此在大多数情况下,它无法实现与有损压缩一样高的压缩率。无损图像压缩的示例是 PNG 和 GIF。 (GIF 只允许 8 位图像。)

TIFF 和 BMP 都是“包装”格式,因为其中的数据可能取决于所使用的压缩技术。它可以包含压缩和未压缩的图像。

何时使用某种图像压缩格式实际上取决于压缩的内容。

相关问题:Ruthlessly compressing large images for the web

【讨论】:

我认为 BMP 不像 TIFF 那样是一种“包装”格式(或者 PDF 是针对那个 amtter 的),也不认为它可以被压缩(我的意思是,你可以压缩它,但它不包含压缩数据)。 @ChrisW:BMP 允许压缩文件的内容。我只是看了一下我引用的 Wikipedia 页面,它支持 RLE、PNG 和 JPEG。 (我不知道它支持 PNG 和 JPEG 内容 - 学到了一些新东西!) BMP 通常会遇到与 WAV 相同的问题,它们都从未标准化,因此几乎所有你能想到的东西都被滥用了。 @PhilWhittington 您将位图对象与文件格式混淆了。位图类以许多不同的格式保存,包括 BMP、TIFF 和 PNG——但它从位图对象(即原始像素数据)中保存。 BMP 文件中没有 PNG 之类的东西。 @Monk msdn.microsoft.com/en-us/library/windows/desktop/… 并搜索“biCompression”。这种 C 结构逐字节存储在 BMP 文件中,因此 BMP 文件也可以支持这些压缩类型。仅仅因为没有人使用它们并不意味着它们是无效的。【参考方案4】:

对于不同图像格式之间的指定差异和用法,上面已经进行了很好的讨论。

但是,我想为捕获图片并存储它们的整个过程添加一些内容。

捕获过程

或者你可以说构建过程(因为我们现在可以用计算机绘制或制作图片)。如果你用相机拍照,你已经在使用很多传感器(CCD 或 CMOS)和算法(拜耳模式滤波器、二次采样和量化等)还有像 Pixel FormatColor Space 这样的东西。得到基本的像素信息后,肯定有办法存储。

基本图片文件结构

为了存储文件中的像素信息,我们需要一个约定和相关算法。为了节省空间,有压缩,但基本上问题是将像素编码为字节并将字节解码为像素以进行显示。

一个典型的图像文件可能由几个部分组成,基本上是两个:meta data or file headerpixel data sectionmeta data 讲述的是图像本身,可能是heightwidthfile format 等。而pixel data section 是真正的section 处理real picture

存储和显示

正如我们之前所说,文件存储在硬盘中并且以字节/位为单位。所以图像文件没有优先级,但实际上还有字节流。对于显示,也许我们应该了解一下监视器是如何工作的。典型的 PC 显示器使用 RGB 模式进行显示。

希望这会有所帮助:-)

【讨论】:

【参考方案5】:

你应该知道几个关键因素...

首先,有两种压缩类型:Lossless 和 Lossy。

无损意味着图像变小,但不影响质量。 有损意味着图像被制作(甚至)更小,但有损质量。如果您一遍又一遍地以有损格式保存图像,图像质量会越来越差。

还有不同的颜色深度(调色板):Indexed color 和 Direct color。

Indexed 表示图片只能存储图片作者选择的有限数量的颜色(通常为 256 种),Direct 表示您可以存储数千种作者没有选择的颜色。


BMP - 无损/索引和直接

这是一种旧格式。它是无损的(保存时不会丢失图像数据),但也几乎没有压缩,这意味着保存为 BMP 会导致文件非常大。它可以有索引和直接的调色板,但这是一个小小的安慰。文件大小太大,以至于没有人真正使用过这种格式。

适用于:真的没什么。 BMP 没有什么擅长的,或者没有其他格式做得更好。


GIF - 无损/仅索引

GIF 使用无损压缩,这意味着您可以反复保存图像而不会丢失任何数据。文件大小比 BMP 小很多,因为实际使用了良好的压缩,但它只能存储索引调色板。这意味着文件中最多只能有 256 种不同的颜色。这听起来是一笔不小的数目,而且确实如此。

GIF 图像也可以是动画并具有透明度。

适用于:徽标、线条图和其他需要很小的简单图像。仅真正用于网站。


JPEG - 有损/直接

JPEG 图像旨在通过删除人眼不会注意到的信息来使详细的照片图像尽可能小。因此,它是一种有损格式,并且一遍又一遍地保存同一个文件将导致更多数据随着时间的推移而丢失。它有数千种颜色的调色板,因此非常适合照片,但有损压缩意味着它对徽标和线条图不利:它们不仅看起来模糊,而且与 GIF 相比,此类图像的文件大小也更大!

适合:照片。还有渐变。


PNG-8 - 无损/索引

PNG 是一种较新的格式,PNG-8(PNG 的索引版本)确实是 GIF 的一个很好的替代品。然而,遗憾的是,它有一些缺点:首先它不能像 GIF 那样支持动画(它可以,但似乎只有 Firefox 支持它,不像每个浏览器都支持的 GIF 动画)。其次,它对 IE6 等较旧的浏览器存在一些支持问题。第三,像Photoshop这样的重要软件对格式的实现很差。 (该死的,Adobe!)PNG-8 只能存储 256 种颜色,例如 GIF。

优点:PNG-8 比 GIF 做得更好的主要方面是支持 Alpha Transparency。

重要提示: Photoshop 不支持 PNG-8 文件的 Alpha 透明度。 (该死的,Photoshop!)有一些方法可以将 Photoshop PNG-24 转换为 PNG-8 文件,同时保持其透明度。一种方法是PNGQuant,另一种方法是使用Fireworks 保存文件。


PNG-24 - 无损/直接

PNG-24 是一种很好的格式,它结合了无损编码和直接颜色(数千种颜色,就像 JPEG)。在这方面它非常像 BMP,除了 PNG 实际上压缩图像,因此它产生的文件要小得多。不幸的是,PNG-24 文件仍将比 JPEG、GIF 和 PNG-8 大得多,因此您仍然需要考虑是否真的要使用一个。

尽管 PNG-24 在进行压缩时允许使用数千种颜色,但它们并非旨在取代 JPEG 图像。保存为 PNG-24 格式的照片可能至少比等效的 JPEG 图像大 5 倍,这对可见质量几乎没有改善。 (当然,如果您不关心文件大小并希望获得最佳质量的图像,这可能是一个理想的结果。)

与 PNG-8 一样,PNG-24 也支持 alpha 透明度。

希望对你有帮助!

【讨论】:

+1 要完整回答 OP 的问题,唯一缺少的是提及 JPG(JPEG 的通用文件扩展名)和 TIFF 部分。 我还要提一下,PNG 压缩在您可能无法预料的情况下非常有用。例如,使用 PNG 可以高度压缩渐变。【参考方案6】:

PNG 支持 alpha 通道透明度。

TIFF 可以有扩展选项,即 Geo referencing 用于 GIS 应用程序。

我建议只将 JPEG 用于照片,切勿用于剪贴画、徽标、文本、图表、线条艺术等图像。

支持 PNG。

【讨论】:

【参考方案7】:

通常这些是:

无损压缩 无损压缩算法在不损失图像质量的情况下减小文件大小,尽管它们不会像有损压缩文件那样压缩成小文件。当图像质量高于文件大小时,通常会选择无损算法。

有损压缩 有损压缩算法利用人眼的固有局限性,丢弃不可见信息。大多数有损压缩算法允许可变质量级别(压缩),并且随着这些级别的增加,文件大小会减小。在最高压缩级别下,图像劣化作为“压缩伪影”变得明显。下图展示了有损压缩算法的明显伪影;选择缩略图以查看完整大小的版本。

每种格式都不同,如下所述:

JPEG JPEG(联合图像专家组)文件(在大多数情况下)是有损格式; DOS 文件扩展名是 JPG(其他操作系统可能使用 JPEG)。几乎每台数码相机都可以以 JPEG 格式保存图像,该格式支持每种颜色 8 位(红色、绿色、蓝色),总共 24 位,生成相对较小的文件。如果不是太大,压缩不会显着降低图像质量,但 JPEG 文件在反复编辑和保存时会出现代际退化。如果要重新编辑照片图像,或者如果不能接受小的“伪像”(由 JPEG 的压缩算法引起的瑕疵),则以无损的非 JPEG 格式存储可能会更好。 JPEG 格式也被用作许多 Adob​​e PDF 文件中的图像压缩算法。

TIFF TIFF(标记图像文件格式)是一种灵活的格式,通常使用 TIFF 或 TIF 文件名为 24 位和 48 位总计分别保存每种颜色(红色、绿色、蓝色)8 位或 16 位。 TIFF 的灵活性既是福也是祸,因为没有一个阅读器可以读取每种类型的 TIFF 文件。 TIFF 是有损和无损的;有些为双层(黑白)图像提供了相对较好的无损压缩。一些数码相机可以保存为 TIFF 格式,使用 LZW 压缩算法进行无损存储。 Web 浏览器不广泛支持 TIFF 图像格式。 TIFF 仍然被广泛接受为印刷行业的照片文件标准。 TIFF 可以处理特定于设备的色彩空间,例如由一组特定印刷机油墨定义的 CMYK。

PNG PNG(便携式网络图形)文件格式是作为 GIF 的免费、开源继承者创建的。 PNG 文件格式支持真彩色(1600 万色),而 GIF 仅支持 256 色。当图像具有大而均匀的颜色区域时,PNG 文件表现出色。无损PNG格式最适合编辑图片,而像JPG这样的有损格式最适合最终分发照片图像,因为JPG文件比PNG文件小。许多较旧的浏览器目前不支持 PNG 文件格式,但是,在 Internet Explorer 7 中,所有现代 Web 浏览器都完全支持 PNG 格式。即使只传输了一小部分图像数据,Adam7 隔行扫描也允许提前预览。

GIF GIF(图形交换格式)仅限于 8 位调色板或 256 色。这使得 GIF 格式适合存储颜色相对较少的图形,例如简单的图表、形状、徽标和卡通风格的图像。 GIF 格式支持动画,至今仍被广泛用于提供图像动画效果。它还使用无损压缩,当大面积区域只有单一颜色时更有效,而对于细节图像或抖动图像则无效。

BMP BMP 文件格式(Windows 位图)处理 Microsoft Windows 操作系统中的图形文件。通常,BMP 文件是未压缩的,因此它们很大;优点是它们的简单性、广泛接受性和在 Windows 程序中的使用。

用于网页/网络应用程序

以下是在网页/应用程序中使用这些图像格式时的简要总结。

PNG 非常适合 IE6 及更高版本(需要一个小的 CSS 补丁才能使透明度正常工作)。非常适合插图和照片。 JPG 非常适合在线照片 当您不想转为 PNG 时,GIF 非常适合用作插图 不应在网页中在线使用 BMP - 浪费带宽

来源:Image File Formats

【讨论】:

【参考方案8】:

由于其他人已经涵盖了差异,所以我将使用。

TIFF 通常由扫描仪使用。它会生成巨大的文件,并没有真正用于应用程序中。

BMP 是未压缩的,也可以生成巨大的文件。它也没有真正用于应用程序中。

GIF 曾经遍布网络,但由于它只支持有限的颜色并且已获得专利,因此已经失宠。

JPG/JPEG 主要用于任何具有照片质量的内容,但不用于文本。使用的有损压缩往往会损坏清晰的线条。

PNG 不像 JPEG 那样小,但它是无损的,因此它适用于线条清晰的图像。现在在网络上很常用。

就我个人而言,我通常会在任何可以使用的地方使用 PNG。这是 JPG 和 GIF 之间的一个很好的折衷。

【讨论】:

BMP 可以进行 RLE 压缩...这不多,但对简单图像有效。它也是一种专有 (Microsoft) 格式。 GIF 专利于 2004 年到期。 TIFF 在需要无损质量的人(艺术家)中非常受欢迎。它也非常适合压缩单色图像,因此它是数字传真/文档扫描软件最流行的格式之一。 在最新规范的 BMP 中还允许内容为 PNG 或 JPEG 压缩。【参考方案9】:

coobird 和 Gerald 说了什么。

此外,JPEG 是文件格式名称。 JPG 是这种格式常用的缩写文件扩展名,因为您需要为早期的 Windows 系统提供 3 个字母的文件扩展名。 TIFF 和 TIF 也是如此。

目前的网络浏览器只显示 JPEG、PNG 和 GIF 文件 - 所以这些是可以在网页上显示的文件。

【讨论】:

浏览器支持不仅限于 JPEG、PNG 和 GIF:许多浏览器都原生支持 BMP、ICO、SVG 和 XBM 等格式。 公平地说,JPEG、GIF和PNG是大多数浏览器都支持的格式。【参考方案10】:

这些名称指的是对像素图像数据进行编码的不同方式(JPG 和 JPEG 是同一种东西,TIFF 可能只是将 jpeg 与一些额外的元数据封装在一起)。

这些图像格式可能使用不同的压缩算法、不同的颜色表示、携带图像本身以外的其他数据的不同能力等等。

对于网络应用程序,我会说 jpeg 或 gif 就足够了。 Jpeg 因其较高的压缩比而被更频繁地使用,而 gif 通常用于轻量级动画,其中闪光灯(或类似的东西)是一种过度杀戮,或者需要透明背景的地方。 PNG也可以使用,但我没有太多经验。 BMP 和 TIFF 可能不适合 Web 应用程序。

【讨论】:

【参考方案11】:

文件扩展名告诉您图像是如何保存的。其中一些格式只是按原样保存位,一些以不同的方式压缩图像,包括无损和有损方法。网络可以告诉你,虽然我知道一些患者响应者会在这里概述它们。

网络主要支持 gif、jpg 和 png。 JPEG 与 jpg 相同(或非常接近)。

【讨论】:

以上是关于“JPG”/“JPEG”/“PNG”/“BMP”/“GIF”/“TIFF”图像有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

JPG、GIF、PNG和BMP格式的图片各有啥优点和缺点?

图片的四种格式.jpg、.gif、.png、.bmp各是啥意思?

VC 下加载 JPG / JPEG / GIF / PNG 图片最简单的方法

求linux的framebuffer截图,截取生成jpg或者bmp,求程序

bmp 和JPG有啥区别

Tensorflow Keras 错误:未知的图像文件格式。需要 JPEG、PNG、GIF、BMP 之一