Spec-Zone.ru › Elisp

Отображение изображений

Вы можете использовать описатель изображения, самостоятельно задав свойство display, но проще использовать функции в этом разделе.

Функция: insert-image image &optional string area slice

Эта функция вставляет image в текущий буфер в точке вставки. Значение image должно быть описателем изображения; это может быть значение, возвращенное create-image, или значение символа, определенного с помощью defimage. Аргумент string задаёт текст, который будет помещён в буфер для хранения изображения. Если он опущен или nil, insert-image использует " " по умолчанию.

Аргумент area указывает, нужно ли помещать изображение в колонтитул. Если это left-margin, изображение отображается в левом колонтитуле; right-margin задаёт правый колонтитул. Если area равно nil или опущено, изображение отображается в точке вставки в тексте буфера.

Аргумент slice задаёт фрагмент изображения для вставки. Если slice равно nil или опущено, вставляется всё изображение. (Однако обратите внимание, что изображения обрезаются при отображении у правого края окна, так как обтекание изображений не поддерживается.) В противном случае, slice — список (x y width height), который задаёт координаты x и y и размеры width и height области изображения для вставки. Целочисленные значения задаются в пикселях. Вещественное число в диапазоне от 0,0 до 1,0 обозначает соответствующую долю ширины или высоты всего изображения.

Внутренне эта функция вставляет string в буфер и присваивает ему свойство display, которое определяет image. См. Свойство отображения.

Функция: insert-sliced-image image &optional string area rows cols

Эта функция вставляет image в текущий буфер в точке вставки, как и insert-image, но разбивает изображение на rowsxcols равных фрагментов.

Emacs отображает каждый фрагмент как отдельное изображение и позволяет более интуитивно прокручивать вверх/вниз, вместо перехода наверх/вниз всего изображения при прокрутке буфера, отображающего (большие) изображения.

Функция: put-image image pos &optional string area

Эта функция помещает изображение image перед pos в текущем буфере. Аргумент pos должен быть целым числом или маркером. Он указывает позицию в буфере, где должно появиться изображение. Аргумент string задаёт текст, который будет содержать изображение вместо значения по умолчанию.

Аргумент image должен быть описателем изображения, возможно, возвращенным create-image или сохранённым defimage.

Аргумент area указывает, нужно ли помещать изображение в колонтитул. Если это left-margin, изображение отображается в левом колонтитуле; right-margin задаёт правый колонтитул. Если area равно nil или опущено, изображение отображается в точке вставки в тексте буфера.

Внутренне эта функция создаёт наложение и задаёт ему свойство before-string, содержащее текст, имеющий свойство display, значение которого является изображением. (Уф!)

Функция: remove-images start end &optional buffer

Эта функция удаляет изображения в buffer между позициями start и end. Если buffer опущен или nil, изображения удаляются из текущего буфера.

Это удаляет только изображения, помещенные в buffer так, как это делает put-image, а не изображения, вставленные с помощью insert-image или другими способами.

Функция: image-size spec &optional pixels frame

Эта функция возвращает размер изображения как пару (width . height). spec — описание изображения. pixels не-nil означает возвращение размеров в пикселях, иначе возвращаются размеры, измеренные в стандартном размере символа frame (см. Шрифт рамки). frame это рамка, на которой будет отображено изображение. frame nil или опущено означает использование выбранной рамки (см. Фокус ввода).

Переменная: max-image-size

Эта переменная используется для определения максимального размера изображения, которое Emacs загрузит. Emacs откажется загрузить (и отобразить) любое изображение, размер которого превышает этот предел.

Если значение является целым числом, оно напрямую задаёт максимальную высоту и ширину изображения в пикселях. Если оно является дробным числом, оно задаёт максимальную высоту и ширину изображения как отношение к высоте и ширине рамки. Если значение не является числовым, то нет явного ограничения на размер изображений.

Цель этой переменной — предотвратить случайную загрузку чрезмерно больших изображений в Emacs. Она действует только при первой загрузке изображения. После размещения изображения в кэше изображения оно может всегда отображаться, даже если значение max-image-size впоследствии изменяется (см. Кэш изображений).

Вставленные с помощью вышеуказанных функций изображения также получают локальную карту клавиш, установленную в свойствах текста (или наложениях), которые охватывают отображаемое изображение. Эта карта клавиш определяет следующие команды:

+

Увеличить размер изображения (image-increase-size). Префиксное значение «4» означает увеличение размера на 40%. Значение по умолчанию составляет 20%.

-

Уменьшить размер изображения (image-increase-size). Префиксное значение «4» означает уменьшение размера на 40%. Значение по умолчанию составляет 20%.

r

Повернуть изображение на 90 градусов по часовой стрелке (image-rotate). Префикс означает поворот на 90 градусов против часовой стрелки.

o

Сохранить изображение в файл (image-save).

Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Showing-Images.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API