你可以自行设置 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),指定待插入图像区域的横纵坐标、宽度与高度。整数值以像素为单位,0.0–1.0 范围内的浮点数表示对应完整图像宽高的比例。
该函数内部会在缓冲区中插入 string,并为其添加指定 image 的 display 属性。See display 属性。默认情况下,缓冲区中的交互式搜索会匹配该 string;若 inhibit-isearch 为非 nil,则禁用该行为。
该函数与 insert-image 类似,在当前缓冲区光标位置插入 image,但会将图像按 rowsxcols 等分为若干切片。
Emacs 会将每个切片作为独立图像显示,让上下滚动更符合直观操作,避免在浏览包含大尺寸图像的缓冲区时,翻页直接跳过整个图像。
该函数在当前缓冲区的 pos 位置前放置图像 image。参数 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,则移除当前缓冲区中的图像。
该函数仅移除通过 put-image 方式添加的图像,不会移除通过 insert-image 或其他方式插入的图像。
该函数以 (width . height) 成对形式返回图像尺寸。spec 为图像规格。若 pixels 为非 nil,返回以像素为单位的尺寸,否则返回以 frame 默认字符尺寸为单位的尺寸(see 框架字体)。frame 为图像将要显示的 框架,若为 nil 或省略,则使用当前选中 框架(see 输入焦点)。
该变量用于定义 Emacs 允许加载的最大图像尺寸。Emacs 会拒绝加载并显示超出该限制的任何图像。
若取值为整数,直接以像素为单位指定图像的最大高度与宽度;若为浮点数,则以 框架 高度与宽度的比例指定最大尺寸;若为非数值,则对图像尺寸无显式限制。
该变量的作用是避免意外加载过大的图像,仅在图像首次加载时生效。一旦图像被加入图像缓存,即便后续修改 max-image-size 的值,该图像仍可正常显示(see 图像缓存)。
若光标位于图像上,该函数返回 t,否则返回 nil。
通过上述插入函数添加的图像,会在覆盖显示图像的文本属性(或覆盖层)中安装局部键盘映射。该键盘映射定义了以下命令:
放大图像尺寸(image-increase-size)
缩小图像尺寸(image-decrease-size)。
旋转图像(image-rotate)。
水平翻转图像(image-flip-horizontally)。
垂直翻转图像(image-flip-vertically)。
将图像保存至文件(image-save)。
交互式裁剪图像(image-crop)。
交互式从图像中截取矩形区域(image-cut)。
See Image Mode in The GNU Emacs Manual 可查看更多这些图像专用按键绑定的详情。