Skip to content
Back to Blog
format-comparisons

TIFF、PNG 与 BMP:无损图像格式大比拼

2026-05-17 9 min read

这三种格式的真正共同点

TIFF、PNG 和 BMP 都有一个关键的共同点:它们都能在不丢弃任何数据的情况下存储图像。但除了“无损保真”这个共同承诺外,它们的相似之处也就到此为止了。每种格式都诞生于不同时代,为不同行业设计,并建立在不同的权衡之上。TIFF (Tagged Image File Format) 由 Aldus 公司于 1986 年为桌面出版和专业扫描领域创建。PNG (Portable Network Graphics) 则在 1996 年出现,作为 GIF 的免专利替代品,是为网络从零开始打造的。而 BMP (Bitmap) 呢?那是微软的原创,自 Windows 1.0 以来就内置其中,并且自 90 年代初以来几乎没有改动。它们的起源解释了一切。这就是为什么一张 2400 万像素的 RAW 图像转换后,作为 TIFF 文件是 68 MB,作为 PNG 是 22 MB,而作为 BMP 却高达 69 MB。这种大小差异并不意味着某种格式天生就更好,它只是反映了它们各自的设计目标。正确的选择永远取决于文件最终的去向以及需要读取它的软件。

压缩:每种格式如何处理文件大小

BMP 是三者中最简单的:默认情况下,它根本不使用任何压缩。一张 4000 × 3000 像素、24 位色彩的图像在磁盘上将永远精确地占用 4000 × 3000 × 3 = 34.3 MB 的空间。图像内容是什么无关紧要。虽然 BMP 规范在技术上包含了一个行程长度编码 (RLE) 选项,但这已成了一个“幽灵功能”;几乎没有现代软件会写入它,许多应用程序甚至无法读取它。因此在实际应用中,你完全可以把 BMP 当作是完全未压缩的存储格式。 PNG 使用 DEFLATE 压缩算法,这也是 ZIP 文件中使用的核心技术。在压缩之前,PNG 会执行一个过滤步骤,以一种更易于压缩的方式重新排列像素数据。你可以将压缩级别从 0(不压缩)调整到 9(最大压缩,速度最慢)。在 Photoshop 中,这就是“文件”→“导出”→“导出为”→ PNG 下的“质量”滑块。压缩效果因图像内容而异。一个有大片平坦区域的 logo 可能会缩小 80-90%,但一张纹理复杂、带有胶片颗粒感的照片可能只能压缩 20-30%。高频细节对于 DEFLATE 来说就是很难处理。最关键的是,PNG 压缩始终是无损的。更改压缩级别只会影响文件大小和保存所需的时间,绝不会改变像素本身。 TIFF 更像一个灵活的容器,支持多种压缩方案。你可以选择不压缩、LZW、ZIP (DEFLATE)、PackBits,甚至 JPEG(这是有损的,通常违背了使用 TIFF 进行存档的初衷)。LZW 是应用最广泛的无损选项。在 Adobe Lightroom Classic 中,你可以在“文件”→“导出”→“图像格式:TIFF”→“压缩:LZW”中找到它。LZW 通常能创建比未压缩的 TIFF 小 10-40% 的文件。然而,这些文件通常仍然比同等的 PNG 文件大,因为 PNG 智能的预过滤步骤使其 DEFLATE 算法具有 LZW 所不具备的显著优势。

色彩深度与专业功能:TIFF 的领先之处

对于严肃的专业工作,这正是 TIFF 脱颖而出的地方。虽然 PNG 支持每通道高达 16 位的位深度——这对于大多数摄影和网页图形来说已经足够了——但 TIFF 更进一步。它能处理 8 位、16 位,甚至 32 位浮点通道。32 位浮点支持对于高动态范围 (HDR) 合成、科学成像以及任何涉及多轮重度编辑的工作流都至关重要。它能防止在 16 位格式中每次保存时可能发生的舍入误差导致的渐进式退化,并且可以存储远超普通屏幕显示能力的亮度值。 TIFF 还支持 CMYK,这是专业印刷的语言。而 PNG 不支持。如果你要将文件发送给胶印厂用于杂志或书籍印刷,他们几乎肯定会要求一个 300 PPI 的 CMYK TIFF 文件。在那个世界里,PNG 根本不是一个可行的选项。此外还有多页功能。任何处理过 50 页扫描文档的人都知道处理 50 个独立文件的痛苦。TIFF 可以将所有这些页面存储在一个整洁的单一文件中,这一功能在文档归档、医学成像和传真系统中被广泛使用。PNG 做不到这一点。 那 BMP 呢?根本不用考虑。BMP 仅限于基本的颜色模式(1、4、8、16 或 24 位,外加一个带 Alpha 的 32 位模式),并且不支持 CMYK、浮点数据或多页。对于专业色彩工作来说,它是一条死胡同。 透明度是另一个关键区别。PNG 是网页应用中无可争议的冠军,它对 8 位和 16 位 Alpha 通道提供干净利落的支持。TIFF 也能处理 Alpha 通道,并提供更复杂的选项,如预乘 Alpha,但对于网页来说就有点大材小用了。BMP 的 32 位模式技术上也包含一个 Alpha 通道,但其在浏览器和应用程序中的支持非常不稳定,依赖它是一场你不该参与的赌博。

实际应用场景:为工作流匹配合适的格式

在网络上,PNG 是王道。这一点毫无争议。浏览器自 90 年代末以来就一直支持它,它的 Alpha 透明度在任何地方都完美无瑕,而且文件大小也很小。你在网上看到的每一个 UI 图标、带透明背景的产品图或导出的图表,都应该是 PNG 格式。如果一张 1.2 MB 的 PNG 截图在视觉上完全相同,那么在网页上提供一张 14 MB 的 TIFF 截图简直是外行操作。 然而,一旦走进印刷厂,TIFF 就成了通用货币。对于印前工作,它是专业标准。像 Adobe InDesign 和 QuarkXPress 这样的应用程序,以及印刷厂的 RIP (光栅图像处理器) 软件,都是围绕 TIFF 构建的。一个采用 LZW 压缩的 CMYK TIFF 文件是一种万无一失的交付品,无论印刷厂运行的是最新软件还是 2008 年的老古董,都能正常工作。 正是这种坚如磐石的可靠性,使得 TIFF 成为档案和数字化项目的首选格式。美国国会图书馆和其他国家档案馆都强制要求使用未压缩或 LZW 压缩的 TIFF,因为该格式是一个有良好文档记录的开放标准,不与任何单一公司绑定。 那么 BMP 的位置在哪里呢?它是一个小众角色,主要存在于特定的以 Windows 为中心的任务中。如果你在 Visual Studio 中构建 Windows 应用程序需要一个启动画面,或者在处理旧版的 CAD 工具,你仍然会遇到它。在这些狭窄的领域之外,今天几乎没有任何理由去创建一个新的 BMP 文件。 在摄影编辑流程中——例如,将文件从 Lightroom 转到 Photoshop 进行修饰再转回来——一个 16 位的 LZW 压缩 TIFF 文件是标准的对接格式。虽然 16 位的 PNG 也能用,但对于这种高位深度的交换,TIFF 的支持更为普遍,尤其是在旧版软件中。

文件大小基准测试:来自真实测试图像的数据

理论是一回事,但数据才能说明真实情况。我们选取了三张截然不同的图像,将它们从未压缩的源数据转换为每种格式。 测试图像 1:一张 3840 × 2160 的森林照片(高细节,无平坦区域)。 - BMP (24位,无压缩): 23.7 MB - TIFF (LZW): 19.1 MB - PNG (DEFLATE 6级,默认): 17.4 MB 测试图像 2:一张 1920 × 1080 的 UI 截图(大面积纯色区域、文本、图标)。 - BMP (24位): 5.9 MB - TIFF (LZW): 1.8 MB - PNG (DEFLATE 6级): 0.9 MB 测试图像 3:一张 600 × 800 的扫描文档页面(白底黑字,噪点极少)。 - BMP (24位): 1.4 MB - TIFF (LZW): 0.18 MB - PNG (DEFLATE 6级): 0.12 MB 规律很明显。对于摄影内容,PNG 通常比 LZW 压缩的 TIFF 小约 5-15%。对于图形密集型图像或有大量平坦颜色的扫描文档,PNG 的优势变得巨大。在文档扫描的例子中,PNG 文件比 BMP 小了近 12 倍,当你需要归档数千页文档时,这种差异会迅速累加。 这里有一个重要的提醒:使用 ZIP (DEFLATE) 压缩保存的 TIFF 文件,其大小会与 PNG 非常接近,因为它们使用的是相同的核心算法。如果你的软件支持 TIFF/ZIP,那么文件大小的差异就基本消失了。Photoshop 可以做到,但像 Lightroom Classic 这样的软件,就没有提供这个直接导出的选项。

使用 CocoConvert 在这些格式之间转换

你可以使用 CocoConvert 在 TIFF、PNG 和 BMP 之间进行转换,而无需启动 Photoshop 或命令行工具。最常见的任务是将 TIFF 转换为 PNG 以缩小文件用于网络,将旧的 BMP 现代化为 PNG,以及将网络来源的 PNG 转换为 TIFF 用于印刷工作流程。 当你将 TIFF 转换为 PNG 时,CocoConvert 会尽力保留原始质量。一个 16 位的 TIFF 会变成一个 16 位的 PNG,而不是降级的 8 位文件。如果你需要特定的输出,也可以在选项中手动设置位深度。 从 BMP 转换为 TIFF 或 PNG 很简单。由于 BMP 是未压缩的,转换后的文件几乎总是比原始文件小得多。 了解 CocoConvert *不能*做什么也很重要。多页 TIFF 文件(例如来自文档扫描仪的文件)目前会被拆分成单独的图像,而不是保留在单个多页文件中。对于这种情况,你最好使用像 ImageMagick (`convert input.tif output.tif` 加上 `-adjoin` 标志) 或 Adobe Acrobat 这样的专用工具。CocoConvert 还会对使用内部 JPEG 压缩的 TIFF 文件报错,这总比给你一个损坏的文件要好。最后,如果你转换一个 32 位浮点 TIFF,数据将被裁剪以适应 PNG 更有限的范围。我们会在转换过程中标记这一点,这样你就不会在不知不觉中丢失数据,但这是目标格式的真实限制。 对于绝大多数的转换——即单个图像从一种格式到另一种格式——这个过程非常简单。上传你的文件,选择你的目标格式,然后下载。20 MB 以下的文件无需注册账户。

你到底应该使用哪种格式?

说了这么多,决策树其实比你想象的要简单得多。以下是如何选择。 对于任何用于屏幕显示的内容,你的默认选择应该是 PNG。如果文件要用于网页、演示文稿或任何重视文件大小和兼容性的应用程序中,请使用 PNG。对于任何非专业的印刷或存档工作,它都是现代、安全的首选。如果你需要在网页上实现透明效果,别再往下看了,直接用 PNG 就行。 当你的工作需要为专业编辑保持最高保真度,或者要从数字世界走向印刷时,你就应该切换到 TIFF。当你向印刷厂交付文件、存档关键扫描件、在专业照片应用之间交换高位深文件,或处理 CMYK 颜色时,请使用 TIFF。对于任何长期兼容性比最小文件大小更重要的工作流程,采用 LZW 压缩的 TIFF 是绝对的主力。 那么 BMP 呢?你只在某个特定的、通常是老旧的软件强制要求时才使用 BMP。它是一种遗留格式,用于 Windows 应用程序资源和那些在 PNG 出现之前的旧程序。在任何其他情况下,PNG 都能做到 BMP 所做的一切,而且做得更好,文件更小,支持更广。 最后一条实用建议:如果你收到一个 BMP 文件,你的第一步应该是将它转换为 PNG。这种转换是完全无损的,你会得到一个体积大大减小且在任何地方都更有用的文件。同样的逻辑也适用于那些没有特定工作流程要求而保持巨大体积的未压缩 TIFF 文件。将它们转换为 PNG,可以在不牺牲任何像素质量的情况下节省空间。

TIFF、PNG 与 BMP:无损图像格式大比拼 | CocoConvert Blog