42.17.10 Изображения с несколькими кадрами

Некоторые файлы изображений могут содержать более одного изображения. Мы говорим, что в изображении есть несколько «кадров». В настоящее время Emacs поддерживает несколько кадров для GIF, TIFF и некоторых форматов ImageMagick, таких как DJVM.

Кадры могут использоваться либо для представления нескольких страниц (обычно это относится к многокадровым файлам TIFF), либо для создания анимации (обычно это относится к многокадровым файлам GIF).

Изображение с несколькими кадрами имеет свойство :index, значение которого является целым числом (начиная с 0), указывающим, какой кадр отображается.

Функция: image-multi-frame-p image

Эта функция возвращает не-nil, если image содержит более одного кадра. Фактическое возвращаемое значение — это конс (nimages . delay), где nimages — количество кадров, а delay — задержка в секундах между ними, или nil, если изображение не указывает задержку. Изображения, предназначенные для анимации, обычно указывают задержку кадра, тогда как те, которые предназначены для обработки как несколько страниц, — нет.

Функция: image-current-frame image

Эта функция возвращает индекс текущего номера кадра для image, начиная с 0.

Функция: image-show-frame image n &optional nocheck

Эта функция переключает image на номер кадра n. Она заменяет номер кадра вне допустимого диапазона на номер конца диапазона, если только nocheck не является не-nil. Если image не содержит кадра с указанным номером, изображение отображается как пустой блок.

Функция: image-animate image &optional index limit

Эта функция анимирует image. Необязательное целое число index указывает кадр, с которого начинать (по умолчанию 0). Необязательный аргумент limit контролирует продолжительность анимации. Если он опущен или равен nil, изображение анимируется только один раз; если t, оно зацикливается бесконечно; если число, анимация останавливается после этого количества секунд.

Анимация работает с помощью таймера. Обратите внимание, что Emacs устанавливает минимальную задержку кадра в 0.01 (image-minimum-frame-delay) секунды. Если само изображение не указывает задержку, Emacs использует image-default-frame-delay.

Функция: image-animate-timer image

Эта функция возвращает таймер, ответственный за анимацию image, если таковой имеется.