Вы можете использовать дескриптор изображения, задав свойство display самостоятельно, но проще использовать функции из этого раздела.
Эта функция вставляет 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. См. Свойство display. По умолчанию при интерактивном поиске в буфере будет учитываться string. Если inhibit-isearch не равен nil, это отключается.
Эта функция вставляет image в текущий буфер в позиции точки, подобно insert-image, но разбивает изображение на rowsxcols фрагментов равного размера.
Emacs отображает каждый фрагмент как отдельное изображение, что позволяет более интуитивно прокручивать вверх/вниз, вместо того чтобы перепрыгивать через всё изображение целиком при пролистывании буфера, содержащего (большие) изображения.
Эта функция помещает изображение image перед pos в текущем буфере. Аргумент pos должен быть целым числом или маркером. Он задаёт позицию в буфере, где должно появиться изображение. Аргумент string задаёт текст, который должен содержать изображение, в качестве альтернативы стандартному «x».
Аргумент image должен быть дескриптором изображения, возможно, возвращённым create-image или сохранённым defimage.
Аргумент area указывает, следует ли помещать изображение в поле. Если он равен left-margin, изображение появляется в левом поле; right-margin задаёт правое поле. Если area равен nil или опущен, изображение отображается в точке внутри текста буфера.
Внутренне эта функция создаёт оверлей и задаёт ему свойство before-string, содержащее текст со свойством display, значение которого является изображением. (Фух! это было труднопроизносимо…). В случае успеха она возвращает созданный оверлей, а также устанавливает его свойство put-image в t.
Эта функция удаляет изображения в buffer между позициями start и end. Если buffer опущен или равен nil, изображения удаляются из текущего буфера.
Она удаляет только те изображения, которые были помещены в buffer способом put-image, а не изображения, вставленные с помощью insert-image или иным образом.
Эта функция возвращает размер изображения в виде пары (width . height). spec — это спецификация изображения. Не nil значение pixels означает возврат размеров в пикселях, в противном случае возвращаются размеры в единицах размера шрифта по умолчанию для frame (см. Шрифт кадра). frame — это кадр, на котором будет отображаться изображение. frame равный nil или опущенный означает использование выбранного кадра (см. Фокус ввода).
Эта переменная используется для определения максимального размера изображения, который Emacs будет загружать. Emacs откажется загружать (и отображать) любое изображение, которое превышает этот предел.
Если значение является целым числом, оно непосредственно задаёт максимальную высоту и ширину изображения в пикселях. Если оно является числом с плавающей запятой, оно задаёт максимальную высоту и ширину изображения как отношение к высоте и ширине кадра. Если значение нечисловое, явного ограничения на размер изображений нет.
Цель этой переменной — предотвратить случайную загрузку в Emacs неоправданно больших изображений. Она вступает в силу только при первой загрузке изображения. Как только изображение помещено в кеш изображений, оно всегда может быть отображено, даже если значение max-image-size впоследствии изменено (см. Кеш изображений).
Эта функция возвращает t, если точка находится на изображении, и nil в противном случае.
Изображения, вставленные с помощью вышеуказанных функций вставки, также получают локальную клавиатурную привязку, установленную в текстовых свойствах (или оверлеях), которые охватывают отображаемое изображение. Эта клавиатурная привязка определяет следующие команды:
Увеличить размер изображения (image-increase-size)
Уменьшить размер изображения (image-decrease-size).
Повернуть изображение (image-rotate).
Отразить изображение по горизонтали (image-flip-horizontally).
Отразить изображение по вертикали (image-flip-vertically).
Сохранить изображение в файл (image-save).
Интерактивно обрезать изображение (image-crop).
Интерактивно вырезать прямоугольную область из изображения (image-cut).
См. Режим изображений в Руководстве пользователя GNU Emacs для получения более подробной информации об этих привязках клавиш, специфичных для изображений.