简体中文

图像和照片·图像转换器和压缩器

为什么 PNG 存在:产生新格式的 GIF 专利之争

· 背景

图像格式 png 透明度

无损像素网格和 alpha 遮罩进入 PNG 形状的容器
原始 ToolAcre 矢量图

PNG 是在 1990 年代中期设计的,是对 GIF 压缩方法专利执行的直接回应。这篇文章讲述了这个故事,并解释了当时的设计目标如何产生至今仍用于屏幕截图和徽标的无损格式。

源于许可纠纷的格式——具体触发点:GIF 中 LZW 算法的专利执行

拟议的文章以围绕 GIF 压缩的许可纠纷开始。受检查的产品来源没有引用专利记录、公告或标准历史,因此这些声明被保留。写入 PNG 的代码无法记录创建该格式的原因。历史因果关系需要其本身的主要或仔细审查的次要来源。

ToolAcre 可以建立的是当前行为。 PNG 是三种输出 MIME 类型之一,使用产品的无损编码器分类,不接受任何质量设置并支持 Alpha。这些事实解释了何时在此界面中选择它,而不会将现代转换模块变成几十年前事件的证据。

存储库不提供 GIF 专利纠纷来源,因此未断言历史记录

GIF 仅被接受作为输入,并且仅使用其第一帧。该格式永远不会作为输出提供,因为带有 GIF 扩展名的静态图像会歪曲其本身。该存储库不实现调色板编辑、一位掩码控件或动画保存,因此这里不比较那些更广泛的 GIF 功能。

这种区别说明了为什么解码和编码支持需要单独的列表。浏览器可以很好地解码源以生成一个位图,而产品故意拒绝写入该格式。对于动画,转换路径不合适,因为它的画布计划会生成单个静止帧。

GIF 在此仅作为单帧解码输入进行验证

该大纲提供了开放设计工作和 W3C 建议的日期。源集中不存在相应的文档。这篇文章没有重复记忆中的日期,而是指出了证据差距。稍后的历史记录可以引用存档的规格和公告,并且应独立于本产品指南进行审查。

将年表与机制分开也可以改善维护。 ToolAcre 的实现可以在不重写 PNG 历史记录的情况下进行更改,并且历史更正不需要更改格式表。当前的代码支持关于输出的实际声明;文献来源将支持关于起源和治理的不同主张。

PNG 设计日期和 W3C 历史需要此存储库之外的主要来源

在 ToolAcre 中,PNG 存储画布像素,无需额外的有损编码并保留透明度。建议用于屏幕截图、徽标和平面图形,而照片通常会生成较大的文件。该应用程序不会公开块结构、过滤器选择、调色板模式或压缩工作。

在 PNG 写入像素之前,调整大小仍会更改像素。同样,将 JPEG 转换为 PNG 会保留解码的 JPEG 损坏,而不是恢复场景。因此,短语“无损目标”描述的是最终编码器阶段,但不能保证每个源属性或像素在整个工作流程中完好无损。

ToolAcre 验证无损输出和 alpha,而不是整个 PNG 设计规范

动画不会出现在 PNG 输出控件中。该工具唯一的动画输入警告涉及 GIF,其第一帧变成静态图像。关于原始 PNG 动画决策或后来的 APNG 开发的声明是外部存储库证据,对于此处选择输出来说是不必要的。

如果运动很重要,请使用保留和验证动画的工作流程。成功的 PNG 在预览中看起来是正确的,但实际上却无法实现通信目标。 ToolAcre 会在转换前警告 GIF 动画丢失,以便用户可以停止,而不是像完成一样传送第一帧。

动画历史被省略;该工具不提供动画 PNG 输出

PNG 今天将此产品作为无损、具有 alpha 功能的候选产品。这使得它对于界面捕获、图表和可重复使用的徽标非常有用。当字节很重要时,它可能是错误的照片传输格式,但正确的比较必须使用测量的输出,而不是承诺 PNG 始终是较大的特定倍数。

对于不透明照片,从源测试 JPEG 和 WebP 并检查有损结果。对于透明图形,请比较 PNG 和 WebP,同时注意边缘保真度和兼容性。内容、目的地和所需的 alpha 比一揽子格式排名更可靠地定义决策。

要点:无损设计 — 图像转换器和压缩器如何将 PNG 视为无损目标以及何时从其转换

PNG 在此应用程序中的目标行为(而不是历史故事讲述)中是无损的。 ToolAcre 隐藏其质量,保留 Alpha 并在几何引入重采样时发出警告。分别测试透明徽标和摄影 PNG,因为它们的内容会创建不同的交付优先级。

选择PNG。仅在检查代表性结果、记录实际字节并确认下游支持后才进行转换。保留原始内容,因为画布重新编码不保证元数据、配置文件或高位深度保留;不受支持的专利日期不会改善该实用指南。