Описатели изображений
Описатель изображения — это список, который определяет данные изображения и способ его отображения. Он обычно используется в качестве значения свойства наложения display или свойства текста (см. Другие параметры отображения); но см. Отображение изображений для удобных вспомогательных функций вставки изображений в буферы.
Каждый описатель изображения имеет вид (image . props), где props — список свойств, состоящий из чередующихся ключевых символов и значений, включая по меньшей мере пару :type type, которая определяет тип изображения.
Описатели изображений, определяющие размеры изображения, :width, :height, :max-width и :max-height, могут принимать целое число, которое представляет размер в пикселях, или пару (value . em), где value — длина размера в ems27. Один em эквивалентен высоте шрифта, а value может быть целым числом или числом с плавающей точкой.
Ниже приведен список свойств, имеющих смысл для всех типов изображений (есть также свойства, имеющие смысл только для определенных типов изображений, как документировано в следующих разделах):
:type type-
Тип изображения. См. Форматы изображений. Каждое изображение должно содержать это свойство.
:file file-
Указывает на загрузку изображения из файла file. Если file не является абсолютным именем файла, оно расширяется относительно подкаталога images в
data-directory, а если нет, то относительно каталогов, указанных вx-bitmap-file-path(см. Атрибуты лица). :data data-
Определяет исходные данные изображения. Каждый описатель изображения должен иметь либо
:dataили:file, но не оба.Для большинства типов изображений значение свойства
:dataдолжно быть строкой, содержащей данные изображения. Некоторые типы изображений не поддерживают:data; для некоторых других:dataодного недостаточно, поэтому вам нужно использовать другие свойства изображения вместе с:data. См. следующие подраздлы для получения подробностей. :margin margin-
Указывает количество пикселей для добавления дополнительного отступа вокруг изображения. Значение margin должно быть неотрицательным числом или парой
(x . y)таких чисел. Если это пара, x указывает количество пикселей для добавления по горизонтали, а y — для добавления по вертикали. Если:marginне указано, значение по умолчанию — ноль. :ascent ascent-
Указывает высоту изображения, используемую для его восхождения — то есть, часть над базовой линией. Значение ascent должно быть числом от 0 до 100 или символом
center.Если ascent является числом, то этот процент высоты изображения используется для его восхождения.
Если ascent равен
center, изображение центрируется по вертикали вокруг центральной линии, которая будет центральной вертикальной линией текста, нарисованного в позиции изображения, в соответствии со свойствами текста и наложениями, которые применяются к изображению.Если это свойство опущено, оно по умолчанию равно 50.
:relief relief-
Добавляет прямоугольник тени вокруг изображения. Значение relief указывает ширину линий тени в пикселях. Если relief отрицательно, тени рисуются так, что изображение выглядит как нажатая кнопка; в противном случае — как ненажатая кнопка.
:width width, :height height-
Ключевые слова
:widthи:heightиспользуются для масштабирования изображения. Если указано только одно из них, другое будет рассчитано таким образом, чтобы сохранить соотношение сторон. Если оба указаны, соотношение сторон может не сохраняться. :max-width max-width, :max-height max-height-
Ключевые слова
:max-widthи:max-heightиспользуются для масштабирования, если размер изображения превышает эти значения. Если:widthустановлено, оно будет иметь приоритет надmax-width, а если:heightустановлено, оно будет иметь приоритет надmax-height, но вы можете комбинировать эти ключевые слова по желанию.Если и
:max-widthи:heightуказаны, но:widthнет, для сохранения соотношения сторон может потребоваться, чтобы ширина превысила:max-width. В этом случае масштабирование использует меньшее значение высоты, чтобы сохранить соотношение сторон и не превысить значение «макс». Аналогично, когда и:max-heightи:widthуказаны, но:heightнет. Например, если у вас изображение 200x100 и вы указали, что:widthдолжно быть 400, а:max-height— 150, вы получите изображение размером 300x150: Сохранение соотношения сторон и не превышение значения «макс». Эта комбинация параметров — полезный способ сказать «отобразить это изображение как можно больше, но не больше, чем доступная область экрана». :scale scale-
Это должно быть число, где значения больше 1 означают увеличение размера, а меньшие — уменьшение размера, умножая ширину и высоту. Например, значение 0,25 сделает изображение вчетверо меньше первоначального размера. Если масштабирование делает изображение больше, чем указано
:max-widthили:max-height, результирующий размер не превысит эти два значения. Если и:scaleи:height/:widthуказаны, высота/ширина будут скорректированы указанным коэффициентом масштабирования. :rotation angle-
Указывает угол поворота в градусах. Поддерживаются только кратные 90 градусов, если тип изображения не
imagemagick. Положительные значения поворачивают по часовой стрелке, отрицательные — против часовой стрелки. Поворот выполняется после масштабирования и обрезки. :transform-smoothing smooth-
Если это
t, любое преобразование изображения будет применять сглаживание; еслиnil, сглаживание не будет применяться. Точный алгоритм зависит от платформы, но должен быть эквивалентен билинейной фильтрации. Отключение сглаживания использует алгоритм ближайшего соседа.Если это свойство не указано,
create-imageбудет использовать пользовательский параметрimage-transform-smoothing, чтобы сказать, нужно ли выполнять масштабирование. Этот параметр может бытьnil(без сглаживания),t(использовать сглаживание) или предикатная функция, которая вызывается с объектом изображения в качестве единственного параметра и должна возвращать либоnil, либоt. По умолчанию при уменьшении масштаба применяется сглаживание, а при большом увеличении масштаба — нет. :index frame:conversion algorithm-
Указывает алгоритм преобразования, который должен быть применён к изображению перед отображением; значение algorithm указывает, какой алгоритм.
laplaceemboss-
Указывает алгоритм обнаружения краёв Лапласа, который размывает небольшие различия в цвете, выделяя более значительные. Люди иногда считают это полезным для отображения изображения для отключенной кнопки.
(edge-detection :matrix matrix :color-adjust adjust)-
Указывает общий алгоритм обнаружения краёв. matrix должен быть либо списком из девяти элементов, либо вектором из девяти чисел. Пиксель в позиции x/y преобразованного изображения вычисляется из исходных пикселей вокруг этой позиции. matrix указывает для каждого пикселя в окрестности x/y множитель, с которым этот пиксель повлияет на преобразованный пиксель; элемент 0 указывает множитель для пикселя в позиции x-1/y-1, элемент 1 — для пикселя в позиции x/y-1 и т. д., как показано ниже:
(x-1/y-1 x/y-1 x+1/y-1 x-1/y x/y x+1/y x-1/y+1 x/y+1 x+1/y+1)
Результат вычисляется из интенсивности цвета цвета, полученного в результате суммирования значений RGB окружающих пикселей, умноженных на указанные множители, и деления этой суммы на сумму абсолютных значений множителей.
Обнаружение краёв Лапласа в настоящее время использует матрицу
(1 0 0 0 0 0 0 0 -1)
Обнаружение краёв эмбосса использует матрицу
( 2 -1 0 -1 0 1 0 1 -2) disabledУказывает преобразование изображения так, чтобы оно выглядело отключенным.
:mask mask-
Если mask равно
heuristicили(heuristic bg), создаётся маска обрезки для изображения, чтобы фон кадра был виден позади изображения. Если bg не указан или равенt, цвет фона изображения определяется по четырём углам изображения, предполагая, что чаще встречающийся цвет из углов — это цвет фона изображения. В противном случае bg должен быть списком(red green blue)определяющим предполагаемый цвет фона изображения.Если mask равно
nil, маска удаляется с изображения, если она есть. В изображениях некоторых форматов есть маска, которую можно удалить, указав:mask nil. :pointer shape-
Указывает форму указателя мыши, когда указатель мыши находится над этим изображением. См. Форма указателя для доступных форм указателей.
:map map-
Связывает с этим изображением карту изображений «горячих точек».
Карта изображений — это список, где каждый элемент имеет вид
(area id plist). Область area задаётся как прямоугольник, круг или многоугольник.Прямоугольник — это конс
(rect . ((x0 . y0) . (x1 . y1))), который определяет координаты пикселей верхнего левого и нижнего правого углов прямоугольной области.Круг — это конс
(circle . ((x0 . y0) . r)), который определяет центр и радиус круга; r может быть числом с плавающей точкой или целым числом.Многоугольник — это конс
(poly . [x0 y0 x1 y1 ...]), где каждая пара в векторе описывает один угол многоугольника.Когда указатель мыши находится на области «горячей точки» изображения, проверяется plist этой «горячей точки»; если он содержит свойство
help-echo, это определяет всплывающую подсказку для «горячей точки», а если он содержит свойствоpointer, это определяет форму курсора мыши, когда он находится на «горячей точке». См. Форма указателя для доступных форм указателей.Когда вы щелкаете мышкой, когда указатель мыши находится над «горячей точкой», генерируется событие, объединяющее id «горячей точки» с событием мыши; например,
[area4 mouse-1]если id «горячей точки» —area4.
- Функция: image-mask-p spec &optional frame
Эта функция возвращает
tесли изображение spec имеет битовую карту маски. frame — это фрейм, на котором изображение будет отображаться. framenilили опущен означает использование выбранного фрейма (см. Фокус ввода).
- Функция: image-transforms-p &optional frame
-
Эта функция возвращает не-
nilесли frame поддерживает масштабирование и поворот изображений. framenilили опущен означает использование выбранного фрейма (см. Фокус ввода). Возвращаемый список содержит символы, указывающие, какие операции преобразования изображений поддерживаются:scaleМасштабирование изображения поддерживается frame через свойства
:scale,:width,:height,:max-width, и:max-height.rotate90Поворот изображения поддерживается frame, если угол поворота является целым кратным 90 градусов.
Если преобразования изображений не поддерживаются,
:rotation,:crop,:width,:height,:scale,:max-widthи:max-heightбудут доступны только через ImageMagick, если он доступен (см. Изображения ImageMagick).
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/Image-Descriptors.html