史蒂夫(Steve)与MATLAB进行图像处理

图像处理概念,算法和MATLAB

动画PNG(APNG)文件

更新:请参阅我的2019年12月20日有关如何从MATLAB编写APNG文件。

您是否听说过动画PNG(APNG)文件?您有兴趣从Matlab创建它们吗?它们应该是对GIF的改进,用于制作网络浏览器中可查看的动画。(如果您对此有意见,一种或另一种方式,请在评论中分享您的想法。)

这是示例图像。您在网络浏览器中看到动画,还是只看到静止图像?

公共领域图像。信用:霍尔格会

当我在Mac上查看此图像时,它使用Safari(版本11.1.2)和Chrome(版本62)进行动画动画,但没有使用MATLAB浏览器。

我不得不承认,直到上周我碰巧看到Matlab答案中提到的它们,我才听说过动画的PNG文件。MATLAB答案之一是讨论APNG的问题,是一个问题,“如何在MATLAB中创建动画GIF图像?”,Royi建议将APNG作为GIF的优质替代品。

我很好奇,所以我开始研究它。

首先,有点背景。PNG图像格式是在1990年代创建的,旨在替代GIF。这是一种有效且流行的无损图像文件格式,在浏览器和其他涉及图像文件的应用程序中得到了普遍支持。万博1manbetx但是,GIF具有PNG没有的一个功能:动画。因此,尽管与1990年代使用GIF相关的一些临时法律限制,但PNG从未取代GIF用于网页上的使用。(如果您有兴趣,请搜索“ GIF UNISYS”。)

作为图像文件格式,GIF具有几个重大弱点。首先是GIF图像最多只能具有256种不同的颜色。对于动画GIF,此限制适用于每个帧。第二个弱点是,保存具有透明度的图像消耗了256种颜色之一,并且每个图像像素的透明度是完全不透明或完全透明的。这使得很难用平滑的抗脉冲边缘制作图像,并且当使用透明度的GIF静止图像或动画显示在与最初用于呈现图像的最初的背景颜色的顶部时,也会导致伪像。

动画PNG格式旨在克服这两个弱点。(此外,与GIF不同,关于PNG的发音没有争议。)

以下是有关APNG的一些关键信息来源:

这是我学到的一些有趣的东西:

  • APNG文件是有效的PNG文件。根据PNG规格,要求兼容的文件读取器忽略他们不知道的文件块。因此,不处理APNG的合规PNG读取器应简单地显示文件中的第一个图像帧。
  • 显然,负责维护PNG规范的社区从未接受APNG规格扩展名或更新参考库(LIBPNG)来处理APNG。
  • 尽管如此,APNG取得了令人惊讶的浏览器支持。万博1manbetx根据Wikipedia页面,在撰写本文时,只有Internet Explorer和Microsoft Edge是保留的。
  • 可以在线获得各种基准,声称可以证明,APNG可以实现较小的文件大小,尽管PNG文件不仅限于256种颜色。我尚未验证它,但是我相信此文件大小的改进是因为APNG的可选间框架差异功能。
  • Wikipedia页面将任意数量的单个PNG文件组合到APNG文件中。

最后,我(偶然地!)了解到Mac上的预览应用程序能够将动画GIF文件转换为APNG文件。您可以通过在预览中查看动画GIF文件,然后使用“导出”菜单将其保存为PNG来完成此操作。它完好无损地保存了它。

我的2017年4月20日关于“八皇后问题”的帖子包括动画GIF。这里是预览应用程序创建的APNG文件。(如果您在不支持APNG的浏览器中查看此博客文章,则可能只会看到一个空的5x5棋盘。)万博1manbetx

在这种情况下,APNG文件大约是GIF文件大小的2.5倍,因此也许预览应用程序不会完全优化APNG输出。另外,如果直接从原始图形创建了APNG文件,则可能会较小,因为GIF文件似乎在棋盘正方形中使用了抖动。

如果您对APNG文件有兴趣,请在评论中告诉我们。




与Matlab®R2018B一起出版

|
  • 打印
  • 发送电子邮件

注释

要发表评论,请单击这里登录您的数学帐户或创建一个新帐户。