Отображение изображений
Вы можете использовать описатель изображения, самостоятельно задав свойство 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 это рамка, на которой будет отображено изображение. framenilили опущено означает использование выбранной рамки (см. Фокус ввода).
- Переменная: 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