[TLDR:使用
imwrite
,,,,use a
DelayTime
为0.02而不是0。]
In response, reader Mikhail commented that one shouldn't use a
DelayTime
0的目的是创建快速的GIF动画。他把我指向本·菲尔普斯(Ben Phelps)的博客文章
“最快的GIF不存在。”
(注意:如果您访问此网站,您可能会在浏览器中收到安全警告。显然,该网站的证书几天前到期。访问您的风险。我试图与作者联系以让他们知道。)
很多年前(大约25岁!),我曾经在MATLAB中进行图像文件格式支持,因此我通常通过查看有关格式的规范开始研究此类问题。万博1manbetx相关规格是
GIF89A
,这是关键段落:
Notice that this language doesn't specify exactly what is supposed to happen if the Delay Time is 0.
我从经验中学到的一件事是,常用软件应用程序的实际行为有时与规格有所不同,实施者必须注意这一点。Ben查看了几个浏览器和其他应用程序的公开源代码,发现延迟时间为0或1(1/100 s),通常不兑现。取而代之的是,出于各种实际和历史原因,像0或1这样的非常低的延迟时间通常被任意碰撞至10(1/10 s)的值。
因此,将延迟时间设置为0不会为您提供最快的动画!我在Mac上使用的浏览器Safari对此进行了测试,这确实是正确的。
This GIF was generated using
DelayTime
0:
这个是使用一个
DelayTime
0.02(
imwrite
uses seconds instead of hundredths of seconds for this parameter):
确实,第二版确实更快地动画了。
One implication is that we may need to change the
imwrite
文档,专门说要使用
DelayTime
of 0 to get the fastest animation:
我实际上认为可能是时候改变
imwrite
界面。也许我们可以给这个参数一个名称,例如
帧率
,(以每秒帧为单位)并记录最大值50(对应于
DelayTime
0.02 s(或200秒)。
我将向开发团队提出两个建议
imwrite
。
评论
要,请,请点击此处登录到您的的帐户帐户或一个新。。。