部分图像文件可以包含多幅图像。我们称该图像中存在多个 “框架(frames)”。目前,Emacs 支持 GIF、TIFF 以及部分 ImageMagick 格式(例如 DJVM)的多框架图像。
这些框架既可以用于表示多个页面(例如多框架 TIFF 文件通常如此),也可以用于创建动画(多框架 GIF 文件通常如此)。
多框架图像具有属性 :index,其值为一个整数(从 0 开始计数),用于指定当前显示的框架。
如果 image 包含多个框架,此函数返回非 nil。实际返回值为一个序对 (nimages . delay),其中 nimages 为框架总数,delay 为框架间的延迟秒数;若图像未指定延迟则为 nil。用于动画的图像通常会指定框架延迟,而用作多页面的图像则不会。
此函数返回 image 当前框架的索引,从 0 开始计数。
此函数将 image 切换至第 n 号框架。若 nocheck 为非 nil,超出有效范围的框架号会被替换为范围末尾对应的编号。如果 image 不存在指定编号的框架,图像将显示为空心方框。
此函数为 image 播放动画。可选整数 index 指定起始框架(默认为 0)。可选参数 limit 控制动画时长:省略或为 nil 时动画仅播放一次;为 t 时无限循环;为数值时动画在指定秒数后停止。
动画通过定时器实现。注意 Emacs 强制最小框架延迟为 0.01 秒(image-minimum-frame-delay)。若图像自身未指定延迟,Emacs 将使用 image-default-frame-delay。
如果存在,此函数返回负责为 image 播放动画的定时器。