42.17.5 ImageMagick 图像

若你编译的 Emacs 带有 ImageMagick 支持,便可使用 ImageMagick 库加载多种图像格式(see File Conveniences in The GNU Emacs Manual)。无论实际底层图像格式为何,通过 ImageMagick 加载的图像类型符号均为 imagemagick

可使用以下代码检查是否支持 ImageMagick:

(image-type-available-p 'imagemagick)
Function: imagemagick-types

该函数返回当前安装的 ImageMagick 所支持的图像文件扩展名列表。列表中每个元素均为符号,对应 ImageMagick 内部的图像类型名称,例如 BMP 代表 .bmp 图像。

User Option: imagemagick-enabled-types

该变量的值为 Emacs 可尝试使用 ImageMagick 渲染的图像类型列表。列表中每个元素应为 imagemagick-types 返回的符号之一,或等价字符串。取值为 t 时表示为所有可用图像类型启用 ImageMagick。无论该变量取值如何,imagemagick-types-inhibit(见下文)均具有更高优先级。

User Option: imagemagick-types-inhibit

该变量列出 永远不 使用 ImageMagick 渲染的图像类型,不受 imagemagick-enabled-types 影响。取值为 t 时表示完全禁用 ImageMagick。

Variable: image-format-suffixes

该变量为关联列表,用于将图像类型映射到文件名扩展名。Emacs 结合图像属性 :format(见下文)使用该列表,向 ImageMagick 库提示图像类型。每个元素格式为 (type extension),其中 type 为指定图像内容类型的符号,extension 为对应文件名扩展名的字符串。

通过 ImageMagick 加载的图像支持以下附加图像描述符属性:

:background background

backgroundnil,则应为表示颜色的字符串,在图像支持透明时用作图像背景色。若值为 nil,则默认使用框架的背景色。

:format type

取值 type 应为符号,指定图像数据类型,对应 image-format-suffixes 中的条目。当图像无关联文件名时,使用该属性向 ImageMagick 提供类型提示。

:crop geometry

geometry 取值应为格式为 (width height x y) 的列表。widthheight 指定裁剪后图像的宽高。若 x 为正数,表示裁剪区域距原图左侧的偏移量;若为负数,则表示距右侧的偏移量。若 y 为正数,表示距原图顶部的偏移量;若为负数,则表示距底部的偏移量。若 xynil 或未指定,裁剪区域将在原图中居中。

若裁剪区域超出图像边界或与边缘重叠,会自动收缩以排除图像外区域。因此无法通过设置较大的 widthheight 来使用 :crop 放大图像。

裁剪操作在缩放之后、旋转之前执行。