⚠️ 这是一个非官方翻译网站,与 ImageMagick Studio LLC 无关。准确信息请参阅原文(https://imagemagick.org/defines/)

-define 命令行选项用于添加特定的全局设置,通常用来控制编码器(coder)和图像处理操作。

此选项会创建一个或多个供编码器/解码器在读写图像数据时使用的定义。定义通常用于在普通方法所提供的功能之外,进一步控制图像文件格式的编码器模块和图像处理操作。已定义的设置会在 -verbose 信息("info:" 输出格式)中以 "Artifacts" 的形式列出。

如果某个定义缺少值,则会创建一个以该名称命名的空值标志定义。它用于控制开/关选项。要删除之前创建的定义,请使用 -define keys。要删除所有现有定义,请使用 +define "*"

同样的「artifact」设置也可以使用 -set "option:key" "value" 选项来定义,该选项还允许在定义值中使用 格式化与打印图像属性

选项和键不区分大小写(在解码器内部使用时会被转换为小写),而值区分大小写。

这类设置的作用域是全局的,会影响所有图像和操作。

magick bilevel.tif -define ps:imagemask eps3:stencil.ps
magick arrow.tga -set colorspace:auto-grayscale=off myArrow.tga

在值前加上 registry: 前缀可设置图像注册表的属性。例如,要设置存放工作文件的临时路径,可使用:

-define registry:temporary-path=/data/tmp

以下列出可识别的 define:

命令行定义

定义 说明
ashlar:best-fit 将瓦片在左右两边都对齐。
ashlar:tiles 设置每张画布渲染的图像瓦片的最大数量。
auto-threshold:verbose 将导出的阈值作为 auto-threshold:threshold 图像属性返回。
color:illuminant 参考光源,默认为 D65。
colorspace:auto-grayscale=on|off 阻止支持灰度的编码器内部自动转换为灰度。应与 -type truecolor 配合使用。PNG 和 TIF 不需要此 define。对于 PNG,只需使用 PNG24:image。对于 TIF,只需使用 -type truecolor。JPG 和 PSD 需要此 define。
compare:frequency-domain=boolean 当启用 FFTW 和 HDRI 时,DPC、MSE、NCC、PSNR、Phase 和 RMSE 等某些相似度度量会在频域中运行。要使用它们的空间域等价版本,可以使用命令 -define compare:frequency-domain=false。但请注意,DPC 和 PHASE 度量没有空间域等价版本,因此对它们而言此命令会被忽略。
compare:ssim-radius=value 设置结构相似性指数(SSIM)的半径。
compare:ssim-sigma=value 设置结构相似性指数的 sigma。
compare:ssim-k1=value 设置结构相似性指数的 k1 参数。
compare:ssim-k2=value 设置结构相似性指数的 k2 参数。
compare:virtual-pixels=boolean ImageMagick 以左上角为基准逐像素比较图像。如果尺寸不同,较小图像中不匹配的区域会被当作虚拟像素处理,这可能影响比较结果。要将比较限定为仅真实像素,请使用 -define compare:virtual-pixels=false。
complex:snr=value 设置 -complex 的除法 SNR 常数。
compose:args=arguments 在使用 convert ... -compose ... -composite 时设置某些合成参数的值。参见 图像合成
compose:clip-to-self=true|false 某些 -compose 方法可以修改叠加区域以外的「合成目标」图像。默认禁用。
compose:clamp=on|off 将值低于零的每个像素设为零,将超过量子范围的像素设为量子范围(例如 65535),否则保持像素值不变。ImageMagick 6.9.1-3 及以上版本支持此 define。
compose:colorspace=colorspace 设置 colorize 合成运算符的色彩空间。默认为 HCL。
compose:compose=on|off 这一特殊用法允许你执行图像通道的纯数学运算,而不涉及 alpha 合成效果。
connected-components:angle-threshold=value 将等效椭圆角度小于 value 的任何区域并入其周围区域或最大邻接区域。Imagemagick 7.0.9.24 支持。
connected-components:area-threshold=value 将面积小于 value 的任何区域并入其周围区域或最大邻接区域。阈值可以选择性地包含范围,例如 410-1600。
connected-components:background-id=object-id 指定将哪个对象作为背景对象。Imagemagick 7.0.9.21 支持。
connected-components:circularity-threshold=value 将圆度小于 value 的任何区域并入其周围区域或最大邻接区域。圆度按 4piarea/perimeter^2 计算。Imagemagick 7.0.9.24 支持。
connected-components:diameter-threshold=value 将直径小于 value 的任何区域并入其周围区域或最大邻接区域。直径按 sqrt(4*area/pi) 计算。Imagemagick 7.0.9.24 支持。
connected-components:eccentricity-threshold=value 将等效椭圆离心率小于 value 的任何区域并入其周围区域或最大邻接区域。Imagemagick 7.0.9.24 支持。
connected-components:exclude-header=true 列出对象但不含表头。Imagemagick 7.0.9.21 支持。
connected-components:keep=list-of-ids 要在输出中保留的 id 值列表,以逗号和/或连字符范围分隔。Imagemagick 6.9.3-0 支持。
connected-components:keep-colors=red;green;blue 保留以分号分隔列表中按颜色标识的对象。Imagemagick 6.9.3-0 支持。
connected-components:keep-top=number-of-objects 仅保留按面积排序最靠前的 number 个对象。Imagemagick 7.0.9.21 支持。
connected-components:major-axis-threshold=value 将等效椭圆长轴直径小于 value 的任何区域并入其周围区域或最大邻接区域。Imagemagick 7.0.9.24 支持。
connected-components:mean-color=true 将输出图像从 id 值改为平均颜色值。Imagemagick 6.9.2-8 支持。
connected-components:minor-axis-threshold=value 将等效椭圆短轴直径小于 value 的任何区域并入其周围区域或最大邻接区域。Imagemagick 7.0.9.24 支持。
connected-components:perimeter-threshold=value 将周长小于 value 的任何区域并入其周围区域或最大邻接区域。Imagemagick 7.0.9.24 支持。
connected-components:remove=list-of-ids 要从输出中移除的 id 值列表,以逗号和/或连字符范围分隔。Imagemagick 6.9.2-9 支持。
connected-components:remove-colors=red;green;blue 移除以分号分隔列表中按颜色标识的对象。Imagemagick 6.9.3-0 支持。
connected-components:verbose=true 列出每个区域的 id、边界框、质心、面积、平均颜色。
convolve:scale={kernel_scale}[!^] [,{origin_addition}] [%] 定义核的缩放。特殊标志 ! 会自动缩放到完整动态范围。! 标志可与系数或百分比组合使用,该系数或百分比会在自动缩放之后应用。例如 50%!。这会产生比完整动态范围缩放暗 50% 的结果。^ 标志确保核为「零和」,例如在边缘检测核中某些值为正、某些值为负时。origin addition 将该值加到核的中心像素上。这会产生类似于将原图按该次数加到滤波后图像结果上的效果。典型值为 1,从而将原图加到卷积结果上。默认为 0。
deskew:auto-crop=true 在纠偏后自动裁剪图像。
delegate:bimodal=true 指定从 Postscript 直接转换为 PDF。
distort:scale=value 设置与 -distort 一起使用的输出缩放系数。
distort:viewport=WxH+X+Y 设置与 -distort 一起使用的视口。
dither:diffusion-amount=X% 设置 Floyd-Steinberg 扩散所用的扩散量。
exif:sync-image=false 默认情况下,图像的分辨率会与 EXIF 配置文件同步。使用此 define 可忽略 EXIF 配置文件。
filename:literal=true 默认情况下,输出文件名可以包含 嵌入式格式化字符。使用此选项可绕过对嵌入式格式化字符的解释,而将文件名按字面使用。
filter:option=value 设置与 -resize 一起使用的滤镜选项。具体选项见下文。
filter:b=value 重新定义 Cubic、Catrom、Mitchel、Hermite 等三次滤镜以及 Parzen 三次窗函数所用的样条系数。如果只定义了 b 和 c 中的一个,则另一个会被设置为生成 'Cubic-Keys' 滤镜。b 和 c 值的含义在 Mitchell-Netravali 的研究论文中已有定义。
filter:blur=factor 缩放滤镜(及其窗口)的 X 轴。模糊时使用 > 1.0,锐化时使用 < 1.0。这应只用于高斯及类高斯的简单滤镜,否则可能得不到预期结果。
filter:c=value 重新定义 Cubic、Catrom、Mitchel、Hermite 等三次滤镜以及 Parzen 三次窗函数所用的 Keys alpha 系数。如果只定义了 b 和 c 中的一个,则另一个会被设置为生成 'Cubic-Keys' 滤镜。b 和 c 值的含义在 Mitchell-Netravali 的研究论文中已有定义。
filter:kaiser-alpha=value 设置 Kaiser 窗的 alpha 值。当它乘以 'PI' 时,等价于 "kaiser-beta" 并会覆盖该设置。它仅影响 Kaiser 窗函数,不影响任何其他属性。
filter:kaiser-beta=value 设置 Kaiser 窗的 beta 值。它仅影响 Kaiser 窗函数,不影响任何其他属性。在 ImageMagick v6.7.6-10 之前,此选项被称为 "filter:alpha"(继承自非常古老的 "zoom" 程序)。为使该功能与更现代的学术研究用法一致并更明确地命名,已对其作了更改。默认值为 6.5。
filter:lobes=count 设置 Sinc/Bessel 滤镜所用波瓣(lobe)的数量。这是指定滤镜 'support' 范围的另一种方式,专为更适合窗口化滤镜而设计,尤其在用于图像扭曲时。
filter:sigma=value 设置用于定义高斯滤镜的 'sigma' 值。默认 sigma 值为 '0.5'。它仅影响高斯滤镜,不会缩小(但可能放大)滤镜的 'support'。它可用于生成非常小的模糊,而不会因使用较小的 support 设置导致滤镜「漏掉」像素。'0.707'(即 '1/sqrt(2)' 的值)这一较大值也是常见设置。
filter:support=radius 设置滤镜的 support 半径。它定义了滤镜应有多大,从而直接决定了滤镜重采样过程有多慢。所有滤镜都有默认的「首选」support 大小。Lagrange 和窗口化滤镜等某些滤镜会根据此值自我调整。对于简单滤镜,此值要么什么都不做(只是拖慢重采样),要么会以有害的方式裁剪滤镜函数。
filter:verbose=true 将关于最终内部滤镜选择的信息打印到标准输出。其中包含关于所用滤镜设置的带注释表头,以及便于绘制滤镜权重图的数据。但请注意,某些滤镜是用其他滤镜在内部定义的。例如,Lanczos 滤镜被定义为 SincFast 窗口化的 SincFast 滤镜,而 Mitchell 滤镜被定义为具有特定 'B' 和 'C' 设置的通用 Cubic 系滤镜。
filter:window=filter_function IIR(无限冲激响应)滤镜 Sinc 和 Jinc 会用给定的滤镜进行窗口化(在定义的 support 范围内降到零)。这允许你指定一个滤镜函数作为这些 IIR 滤镜的窗函数。许多已定义的滤镜实际上就是这些 IIR 滤镜的窗函数。一个典型选择是 Box(实际上关闭了窗函数)。
filter:window-support=radius 将窗函数缩放到此大小。这会使窗口化(或自窗口化的 Lagrange 滤镜)表现得仿佛 support 窗口比实际提供给调用运算符的更大。但滤镜本身仍会被裁剪到所提供的真实 support 大小。如果未设置,此值等于普通滤镜的 support 大小。
h:format=value 设置写入 C 风格头文件时所用的图像编码格式。format 可以是 ImageMagick 支持的任意输出格式,但 h 和 magick 除外。如果省略此选项,则默认对 PseudoClass 图像为 GIF,对 DirectClass 图像为 PNM。
fourier:normalize=inverse 设置 +-fft+-ift 所用的 FFT/IFT 归一化位置。默认为 forward。
frames:step 选择图像 时,默认逐帧遍历列表,例如 [0-3] 返回帧 0、1、2 和 3。在此例中将 step 设为 2,则改为得到帧 0 和 2。
fx:debug=true 调试 -fx 表达式。
hough-lines:accumulator=true 在线条图像之外另外返回累加器图像。
identify:convex-hull=true 显示凸包与最小边界框。
identify:locate=value 显示最小或最大像素位置。有效值为 minimum 或 maximum。默认为 maximum。
identify:limit=value 使用 identify:locate 时显示的像素位置最大数量。
json:features 在详细信息中包含特征。
kmeans:seed-colors=color-list 初始化颜色,其中 color-list 是以分号分隔的种子颜色列表(例如 red;sRGB(19,167,254);#00ffff)。
magick:format=value 设置写入 C 风格头文件时所用的图像编码格式。与上文描述的 "h:format=format" 相同。
magnify:method=value 选择像素艺术放大的方法。选项有:eagle2X、eagle3X、eagle3XB、epb2X、fish2X、hq2X、scale2X(默认)、scale3X、xbr2X。
modulate:colorspace=colorspace 定义与 -modulate 一起使用的色彩空间。可使用任何基于色相的色彩空间。默认为 HSL。
morphology:compose=compose-method 指定如何合并多重形态学核生成的结果。默认为 none。一个典型值是 'lighten',例如用于 sobel 边缘核。
morphology:showKernel=1 将关于所生成 -morphology 核的所有信息输出(到「标准错误」)。
phash:colorspaces=colorspace,colorspace,... 感知哈希默认使用 xyY 和 HSB 色彩空间。使用此 define 时,你最多可以指定六个备选色彩空间。(自 IM 7.0.3-8 起)
phash:normalize=true 归一化 phash 度量。
pixel:compliance={none|undefined|svg|mvg|x11|xpm} -depth 结合使用时,此 define 允许颜色值以下列之一或其组合呈现:百分比、名称、8 位分量或十六进制值。16 位深度值一般显示为百分比,8 位深度值一般显示为颜色名称与 8 位分量值的组合。
png:bit-depth=value
png:chunk-malloc-max=value 设置块(chunk)的最大大小。
profile:skip=name1,name2,... 在读取图像时跳过指定的配置文件。要跳过图像中所有命名的配置文件,请使用 skip="*"。存在许多命名配置文件,包括 ICC、EXIF、APP1、IPTC、XMP 等。
precision:highres-transform=true 提高配置文件变换的精度。请注意,由于高精度变换是浮点而非无符号的,会有轻微的性能损失。同样重要的是,结果可能取决于原图是否已包含配置文件。
preserve-timestamp=true|false 保留文件时间戳(仅 mogrify)。
q-table=quantization-table.xml 自定义 JPEG 量化表。
quantum:format=type 将 type 设为 floating-point,可为 raw 文件(例如 GRAY:)或 HDRI 模式下的 MIFF 与 TIFF 图像指定浮点格式以保留负值。如果包含 -depth 16,结果为单精度浮点格式。如果包含 -depth 32,结果为双精度浮点格式。对于有符号像素数据,请使用 -define quantum:format=signed。
quantum:maximum=value DCM 等某些图像类型的最大值。如果未设置,最大值为 QuantumRange。
quantum:minimum=value DCM 等某些图像类型的最小值。如果未设置,最小值为零。
quantum:polarity=photometric-interpretation 将图像(通常用于 TIFF 图像文件格式)的测光解释设置为 min-is-black(默认)或 min-is-white。
registry:attribute=value 设置图像注册表的属性,例如 registry:temporary-path=/data/tmp。
registry:date:precision=length 设置任意时间戳打印的最大字符数。
registry:option:pedantic=true false | 默认情况下,如果某个命令行选项同时也是文件名(例如 -quality),它会被解释为文件名。将此选项设为 true 可将其解释为选项。
registry:precision=value 设置打印的最大有效数字位数。
resample:verbose=true 输出由 EWA(椭圆加权平均)重采样算法创建的圆柱滤镜查找表。请注意,此表使用半径平方作为查找值。通常仅用于调试 EWA 重采样。
sample:offset=geometry 被采样子区域内采样点的位置,以百分比表示(参见 -sample)。
shepards:power=value 设置 Shepard's 扭曲的指数。默认为 2。
stream:buffer-size=value 设置流缓冲区大小。选择 0 表示无缓冲 I/O。
trim:percent-background=X% 设置边缘中允许的背景量,以百分比指定。0% 表示不允许任何背景。50% 表示按 fuzz 系数,每条边缘最多可包含 50% 的背景像素。
trim:edges={north,east,south,west} 仅修剪图像的指定边缘。
trim:minSize=geometry 将修剪限制到指定大小。
type:features=string 添加 RAQM delegate 在复杂文本排版时使用的字体特性。通常用于开启默认未启用的可选字体特性,但也可用于关闭默认字体特性。特性包括用于控制字偶距、连字和阿拉伯语的那些。
type:hinting=false 禁用字体微调(hinting)。正确的字形渲染需要将缩放后的点对齐到目标设备的像素网格上,这一操作通常称为微调(hinting)。其主要目的之一是确保在整个字体中尊重重要的宽度和高度。(例如,常常希望 'I' 和 'T' 字形的中央竖线具有相同的像素宽度。微调还管理诸如笔画(stem)和超出(overshoot)等特性,它们在小像素尺寸下可能引发问题。)
white-balance:vibrance=value{%} a 与 b 通道的色彩鲜艳度(vibrance)的变化量。
x:screen=true 从根窗口获取图像。
x:silent=true 关闭导入图像时的提示音。

IMAGE FORMATS

定义 说明
bmp3:alpha=true|false 以 BMP 图像格式写入时包含任何 alpha 通道。
bmp:format=value 有效值为 bmp2、bmp3 和 bmp4。当在输出文件名前加 "BMP2:" 的方法不便或不可用时(例如使用 mogrify 工具时),此选项很有用。
bmp:subtype=value BMP 通道深度子类型。选项有:RGB555、RGB565、ARGB4444、ARGB1555。仅在 BMP(BMP4)中支持。BMP3 和 BMP2 不含支持这些选项的头字段。
{caption,label}:{max,start}-pointsize=value 在搜索文本注释仍能完整容纳于图像边界内的最大磅值时,设置所用的边界磅值。
dcm:display-range=reset 将 DCM 图像格式的显示范围设置为最小与最大像素值。
dcm:fix-byte-order=true 在从文件读取像素时修正错误的字节序。
dcm:rescale=true 启用对文件中重新缩放斜率和截距设置的解释。
dcm:rescale=true 启用对文件中重新缩放斜率和截距设置的解释。
dcm:window=CxW 指定 dcm 窗口的中心与宽度。
dds:cluster-fit=true|false 启用 DDS cluster-fit。
dds:compression=dxt1|dxt5|none 设置 dds 压缩。
dds:mipmaps=value 设置 dds 的 mipmap 数量。
dds:weight-by-alpha=true|false 启用 DDS 的 alpha 加权。
dng:max-raw-memory=value 如果 raw 缓冲区大小增长超过该值(以兆字节为单位),则停止处理。默认为 8192。
dng:no-auto-bright=true 禁用基于直方图的白电平。
dng:output-color=value 选择输出色彩空间。选项有:0 - Raw color(每台相机各不相同)、1 - sRGB D65(默认)、2 - Adobe RGB (1998) D65、3 - Wide Gamut RGB D65、4 - Kodak ProPhoto RGB D65、5 - XYZ、6 - ACES。
dng:read-thumbnail=true 读取嵌入的缩略图并将其作为名为 'dng:thumbnail' 的配置文件存储。
dng:use-auto-wb=true 通过对整幅图像求平均来计算白平衡。
dng:use-camera-wb=true 使用相机指定的白平衡。默认为 true。
dot:layout-engine=value 指定 DOT 图像格式的布局引擎(例如 neato)。
eps:use-cropbox=true 强制 ImageMagick 尊重裁剪框。
exr:color-type=value 指定 EXR 格式的颜色类型:RGB、RGBA、YC、YCA、Y、YA、R、G、B、A。
fpx:view=value 指定 FlashPix 的查看对象,其中包含查看变换的规范。查看变换使应用程序能够将一组简单编辑表示为一个「命令」列表,这些命令会实时应用到图像上而不更改原图。
ftxt:chsep=value 读写时分隔通道值的单个文本字符。默认:","(逗号)。
ftxt:format=value 用于写入和读取的格式字符串。默认:"\x,\y:\c"。关于 \x 等转义,参见 ftxt: formatted text
ftxt:hasalpha=value 文本是否具有 alpha 通道,仅用于读取。默认:false。
ftxt:nummeta=value 元(meta)通道的数量,仅用于读取。默认 0(零)。
heic:chroma=value 设置 HEIC 的色度参数。可能的值有:"420"、"422"、"444"。默认为 "420"。
heic:cicp=value 设置 HEIC 的色彩原色、传递特性、矩阵系数和全范围标志。对于全范围 BT.709,使用 1/13/6/1。关于这些字段和值的说明,参见 ISO/IEC 14496-12:2022 标准。
heic:depth-image=true 如果容器含有深度图像,则将其提取出来。
heic:max-number-of-tiles=value 设置 HEIC 图像瓦片的最大数量。
heic:max-bayer-pattern-pixels=value 设置 HEIC 图像拜耳模式的最大尺寸(以像素计)。
heic:max-items=value 设置 HEIC 图像某个 box 中的最大项目数。
heic:max-components=value 设置 HEIC 图像的最大分量数。
heic:max-iloc-extents-per-item=value 设置 HEIC 图像 iloc box 中的最大 extent 数。
heic:max-size-entity-group=value 设置 HEIC 图像某个实体组的最大大小。
heic:max-children-per-box=value 设置 HEIC 图像每个 box 的最大子项数。
heic:preserve-orientation=true 在 HEIC 解码时保留原始 EXIF 方向并相应地旋转像素。默认情况下,EXIF 方向会被重置为 "1",以匹配 HEIC 中像素的实际方向。
heic:speed=value 设置 HEIC 的 speed 参数。整数值,范围 0-9。默认为 5。
icon:auto-resize 在写入 ico 图像时自动存储多个尺寸(需要 256x256 的输入图像)。
icon:png-compression-size 设置最小图像尺寸阈值,超过该阈值时会存储 PNG 图像而非 BMP 图像。
json:limit
json:locate
json:moments 在详细信息中包含图像矩(moments)。
jp2:layer-number=value 设置要解码的质量层的最大数量。JPT、JC2 和 J2K 同此。
jp2:number-resolutions=value 设置要编码的分辨率数量。JPT、JC2 和 J2K 同此。
jp2:progression-order=value 从 LRCP、RLCP、RPCL、PCRL 或 CPRL 中选择。JPT、JC2 和 J2K 同此。
jp2:quality=value,value... 设置质量层的 PSNR,以 dB 给出。顺序为从左到右升序排列。默认为单个无损质量层。JPT、JC2 和 J2K 同此。
jp2:rate=value 指定写入 JPEG-2000 文件时所用的压缩系数。压缩系数是压缩比的倒数。有效范围为 0.0 到 1.0,1.0 表示无损压缩。如果定义了此值,它会覆盖 -quality 设置。质量设置 75 对应的 rate 值为 0.06641。JPT、JC2 和 J2K 同此。
jp2:reduce-factor=value 设置要丢弃的最高分辨率层级的数量。JPT、JC2 和 J2K 同此。
jpeg:arithmetic-coding=on|off 启用/禁用 Huffman 优化。
jpeg:block-smoothing=on|off
jpeg:colors=value 设置期望的颜色数量并让 JPEG 编码器执行量化。
jpeg:dct-method=value 从 default、fastest、float、ifast 和 islow 中选择。
jpeg:extent=value 限制最大 JPEG 文件大小,例如 -define jpeg:extent=400KB。JPEG 编码器会搜索能使输出文件不超过该值的最高压缩质量级别。自版本 6.9.2-5 起,-quality 选项也会被尊重。在 6.9.1-0 到 6.9.2-4 之间,需要添加 -quality 100 才能让 jpeg:extent 正常工作。在 6.9.1-0 之前,-quality 设置会被忽略。
jpeg:fancy-upsampling=on|off
jpeg:high-bit-depth=on|off 默认情况下,ImageMagick 生成 8 位深度的 JPEG 图像。启用高位深度后,如果源图像深度超过 8 位,它会生成 12 位或 16 位图像。
jpeg:optimize-coding=on|off
jpeg:q-table=table
jpeg:restart-interval=value 将重启间隔设置为 interval 个 MCU 块。
jpeg:sampling-factor=sampling-factor-string
jpeg:size=geometry 设置 JPEG 图像的尺寸提示,例如 -define jpeg:size=128x128。在缩小大型 JPEG 图像时,它最有助于提升性能并降低内存需求。
jxl:decoding-speed=value 设置 jpeg-xl 的解码速度。有效值范围为 0(最慢)到 4(最快,以牺牲部分质量/密度为代价)。
jxl:effort=value 设置 jpeg-xl 的编码努力度。有效值范围为 3(falcon)到 9(tortoise)。
minimum-bounding-box:orientation=value 找出从边缘到原点的最小垂直距离。有效值为 horizontal 和 vertical。
mng:need-cacheoff 为流式 MNG 关闭播放缓存。
pcl:fit-to-page=true
pdf:author=author 设置文档的作者。
pdf:create-epoch=seconds 设置文档的创建时间。
pdf:creator=creator 设置文档的创建者。
pdf:fit-page=geometry geometry 指定读取 PDF 时调整尺寸所用的缩放尺寸。geometry 可以是 WxH{%} 或页面大小。不允许偏移。(在 IM 6.8.8-8 中引入)
pdf:fit-to-page=true
pdf:hide-annotations=true 隐藏与页面 Annots 键关联的注释。
pdf:interpolate=true 在渲染时启用插值。
pdf:keywords=keywords 设置文档的关键词。
pdf:modify-epoch=seconds 设置文档的修改时间。
pdf:no-identifier=true 不生成 ID 条目。
pdf:page-direction=right-to-left
pdf:printed=true 决定对于注释和图像,文件应使用 "screen"(屏幕)还是 "printer"(打印机)选项来显示或打印。
pdf:producer=producer 设置文档的生产者(producer)。
pdf:subject=subject 设置文档的主题。
pdf:stop-on-error=true
pdf:thumbnail=false 在保存 PDF 文件时生成图像缩略图。
pdf:title=title 设置文档的标题。
pdf:use-cropbox=true
pdf:use-trimbox=true
png:color-type=value PNG 输出所期望的位深度和颜色类型。你可以强制 PNG 编码器使用与其通常选择不同的位深度和颜色类型,但仅限于不会造成任何图像质量损失的情况。任何降低图像质量的尝试都会被视为错误,并且不会写出 PNG 文件。例如,如果你有一幅 1 位黑白图像,可以用这些 "defines" 让它写成 8 位灰度、索引,甚至 64 位 RGBA。但如果你有一幅 1600 万色的图像,则不能强制将其写成灰度或索引 PNG。如果想这样做,必须在使用 PNG 编码器之前用相应的 -depth-colors-type 指令降低图像质量。请注意,在索引 PNG 文件中,"bit-depth" 指的是每个索引的位数,可以是 1、2、4 或 8。在此类文件中,颜色样本始终为 8 位深度。
png:compression-filter=value 有效值为 0 到 9。0-4 是对应的 PNG 滤镜,5 表示对带调色板的图像之外的图像进行自适应滤波,6 表示对所有图像进行自适应滤波,7 表示 MNG "loco" 压缩,8 表示带自适应滤波的 Z_RLE 策略,9 表示不带滤波的 Z_RLE 策略。
png:compression-level=value 有效值为 0 到 9,0 提供最弱但最快的压缩,9 通常提供最佳且始终最慢的压缩。
png:compression-strategy=value 有效值为 0 到 4,分别表示 default、filtered、huffman_only、rle 和 fixed ZLIB 压缩策略。如果你使用不支持 Z_RLE(1.2.0 之前)或 Z_FIXED(1.2.2.2 之前)的旧版 zlib,则值 3 和 4 将分别改用 zlib 的默认策略。
png:format=value 有效值为 png8、png24、png32、png48、png64 和 png00。当在输出文件名前加格式名的常规方法不便时(例如写入 PNG 编码的 ICO 文件或使用 mogrify 时),此属性有助于指定要使用的特定 PNG 格式。值 = png8 会在必要时将颜色数减至 256,其中最多只有一种可以是完全透明的。其他值不强制降低任何质量;请求一个无法无损表示图像数据的格式会出错(但允许对所有格式将位深度从 16 降至 8)。值 = png24 和 png48 仅在单一颜色完全透明且该颜色不出现在不透明像素中时才允许透明;此类透明会写入 PNG tRNS 块。值 = png00 会使图像继承输入图像的颜色类型和位深度(如果输入也是 PNG)。
png:exclude-chunk=value
png:include-chunk=value 要从 PNG 输出中排除或包含的辅助块。值可以是诸如 bKGD 这样的 PNG 块类型名,或块名的逗号分隔列表(可以包含 date、all 或 none 等词)。尽管 PNG 块名区分大小写,但如果你愿意,可以使用全小写名称。"include-chunk" 和 "exclude-chunk" 列表仅影响 PNG 编码器的行为,对 PNG 解码器没有影响。作为一种特殊情况,如果排除了 sRGB 块而包含了 gAMA 块,则仅在 gamma 不是 1/2.2 时才会写入 gAMA 块,因为当 PNG 文件中不含色彩空间信息时,大多数解码器不会将 gAMA=0.45455 假定为 sRGB。由于列表从左到右处理,你可以用单个 define 实现这一点:
-define png:include-chunk=none,gAMA

作为一种特殊情况,如果未排除 sRGB 块,且 PNG 编码器识别出图像包含 sRGB ICC 配置文件,则 PNG 编码器会写入 sRGB 块而非整个 ICC 配置文件。要强制 PNG 编码器在输出 PNG 中将 sRGB 配置文件写为 iCCP 块而非 sRGB 块,请排除 sRGB 块。关键的 PNG 块 IHDR、PLTE、IDAT 和 IEND 不能被排除。列表中出现的此类条目会被忽略。如果排除了辅助 PNG tRNS 块且图像具有透明度,则 PNG 颜色类型会被强制为 4 或 6(GRAY_ALPHA 或 RGBA)。如果图像不透明,则无论如何都不会写入 tRNS 块,对输出图像的 PNG 颜色类型也没有影响。-strip 选项对 PNG 输出执行的操作等同于以下:

-define png:exclude-chunk=EXIF,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date

默认行为是包含所有已知的 PNG 辅助块以及 ImageMagick 的私有 vpAg(「虚拟页」)块,并排除 ImageMagick 不认识的所有 PNG 块,无论其在 PNG 规范中所述的 "copy-safe" 状态如何。ImageMagick 不认识的块名即使出现在 "include-chunk" 或 "exclude-chunk" 列表中也会被忽略。ImageMagick 目前认识的辅助块有 bKGD、cHRM、gAMA、iCCP、oFFs、orNT、pHYs、sRGB、tEXt、tRNS、vpAg 和 zTXt。你也可以在列表中加入 date,以包含/排除 ImageMagick 通常插入到输出 PNG 中的 "Date:create" 和 "Date:modify" 文本块。
png:ignore-crc[=true] | 当你知道你的图像没有 CRC 或 ADLER32 错误时,这可以加快解码速度。它在调试来自「模糊测试器(fuzzer)」的错误报告时也有帮助。
png:preserve-colormap[=true] | 使用现有的 image->colormap。通常 PNG 编码器会尝试优化调色板,消除未使用的条目并将透明色放在前面。如果设置了此标志,该行为会被抑制。
png:preserve-iCCP[=true] | 默认情况下,PNG 解码器和编码器会检查任何存在的 ICC 配置文件(来自 PNG 输入的 iCCP 块或通过选项提供的),如果识别出该配置文件是 sRGB 配置文件,则将其转换为 sRGB 块。你可以使用 -define png:preserve-iCCP 来阻止这种情况发生;在这种情况下,会读取或写入 iCCP 块,且不会写入 sRGB 块。有些 ICC 配置文件声称是 sRGB,但存在各种错误,导致它们被 libpng16 拒绝;此类配置文件无论如何都会被识别并转换为 sRGB 块,但如果存在 -define png:preserve-iCCP,则会被拒绝。请注意,并非所有 "sRGB" ICC 配置文件都已被识别;我们会在遇到时将它们添加到列表中。
png:swap-bytes[=true] | PNG 规范要求任何多字节整数以网络字节序(MSB-LSB 端序)存储。此选项允许你修复任何 16 位样本以小端序(LSB-MSB)错误存储的无效 PNG 文件。"-define png:swap-bytes" 选项必须出现在命令行中输入文件名之前。字节交换在 libpng 解码操作期间完成。
ps:imagemask | 如果定义了 ps:imagemask 标志,PS3 和 EPS3 编码器会创建用 Postscript imagemask 运算符(而非 image 运算符)渲染二值图像的 Postscript 文件。
psd:additional-info=all|selective | 此选项应仅在从一个 PSD 文件转换为另一个 PSD 文件时使用。应将其放在读取图像之后。两个选项为 'all' 和 'selective'。'selective' 会保留所有与图像几何无关的附加信息。'all' 应仅在图像几何未被更改时使用。此选项在将调整图层等非简单图层从输入 PSD 文件转移到输出 PSD 文件时很有用。如果不使用此选项,附加信息将不会被保留。此 define 自 Imagemagick 6.9.5-8 版本起可用。
psd:alpha-unblend=off | 对于扁平化后的图层 0,在向输出图像添加 alpha 通道之前,禁用与基础图像的透明度的新式自动取消混合(un-blend)。此 define 必须放在输入 psd 图像之前。(自 IM 6.9.2.5 起可用)。自动取消混合是 IM 6.9.2.5 中新增的,可防止透明度在输出图像中被应用两次。此选项应在读取图像之前设置。
psd:preserve-opacity-mask=true | 此选项应仅在从一个 PSD 文件转换为另一个 PSD 文件时使用。它会保留图层的不透明蒙版,并在保存图像时将其重新添加到图层上。将其设为 'true' 会启用此功能。此 define 自 Imagemagick 6.9.5-10 版本起可用。
psd:write-layers=false | 此选项可用于禁用写入 PSD 文件的图层。
psd:replicate-profile=true | 此选项可用于将图像配置文件复制到所有图像,而不仅是返回的第一幅图像。
ptif:pyramid=min-basexlevels | 指定金字塔的 min-base 和层级数,例如 64x4。
svg:parse-huge=true | 为你信任其来源的非常大的 SVG 启用渲染。
svg:substitute-entities=true | 在你信任来源的情况下启用实体替换。
tga:preserve-orientation=true | 保留图像方向。
tga:write-footer=true | 启用写入一个空的可选页脚。
tiff:alpha=associated|unassociated|unspecified | 将 alpha 额外样本指定为 associated、unassociated 或 unspecified。
tiff:assume-alpha=true|false | 将未声明的额外通道假定为 alpha。
tiff:endian=msb|lsb |
tiff:exif-properties=false | 禁用读取 EXIF 属性。
tiff:fill-order=msb|lsb |
tiff:peg-tables-mode=0-3 | 在以 jpeg 压缩写入 tiff 文件时设置 TIFFTAG_JPEGTABLESMODE。
tiff:gps-properties=false | 禁用读取 GPS 属性。
tiff:ignore-layers=true | 忽略 Photoshop 图层。
tiff:ignore-tags=comma-separate-list-of-tag-IDs | 允许忽略一个或多个标签 ID 值。
tiff:predictor=[1, 2 or 3] | 在应用编码方案之前应用于图像数据的数学运算符。其总体思路是图像中相邻的像素彼此相似。因此,从某个像素中减去前一个像素已包含的信息,很可能会大幅降低其信息密度并有助于后续压缩。1 = 编码前不使用预测方案。2 = 水平差分。3 = 浮点水平差分。
tiff:preserve-compression=true | 保留源图像的压缩。
tiff:rows-per-strip=value | 设置每条带(strip)的行数。
tiff:tile-geometry=WxH | 设置金字塔 tiff 的瓦片大小。需要在输出名前加后缀 PTIF:。
uhdr:gainmap-gamma=value | 设置增益图(gainmap)图像的编码 gamma。必须大于 0.0。用于编码期间。可选。默认值为 1.0。
uhdr:gainmap-quality=value | 设置增益图图像的编码质量系数。有效范围为 1 到 100,1 表示最低图像质量或最高压缩,100 表示最佳质量或最弱有效压缩。用于编码期间。可选。默认值为 95。
uhdr:gainmap-max-content-boost=value | 指定在给定像素处,目标 HDR 渲染版本的线性亮度相对于(除以)SDR 图像的线性亮度的最大允许比值。换言之,这指定了一个像素在 HDR 显示器上相对于 SDR 渲染版本最多可以亮多少。必须大于 0.0。用于编码期间。可选。如果未配置,将基于输入动态计算。
uhdr:gainmap-min-content-boost=value | 指定在给定像素处,目标 HDR 渲染版本的线性亮度相对于(除以)SDR 图像的线性亮度的最小允许比值。换言之,这指定了一个像素在 HDR 显示器上相对于 SDR 渲染版本最多可以暗多少。必须大于 0.0。用于编码期间。可选。如果未配置,将基于输入动态计算。
uhdr:hdr-color-gamut={bt709|display_p3|bt2100} | 设置输入 HDR 意图的色域。用于编码期间。必需。
uhdr:hdr-color-transfer={hlg|pq|linear} | 设置输入 HDR 意图的色彩传递。用于编码期间。必需。
uhdr:output-color-transfer={hlg|pq|linear|srgb} | 设置渲染 ultrahdr 图像所在目标显示器的传递特性。用于解码期间。必需。如果为 srgb,则仅解码 sdr 意图并作为输出发送;否则,sdr 意图和增益图会被解码、合成为 hdr 图像并作为输出发送。
uhdr:sdr-color-gamut={bt709|display_p3|bt2100} | 设置输入 SDR 意图的色域。用于编码期间。必需。
uhdr:uhdr:target-display-peak-brightness=value | 峰值亮度指显示器能够达到的最大亮度级别。这对于准确表现 HDR 内容中的明亮高光非常重要。
video:intermediate-format={pam,webp} | 设置 ffmpeg 的视频中间格式选项。
video:pixel-format=value | 设置 ffmpeg 的像素格式选项。
video:vsync=value | 设置 ffmpeg 的 vsync 选项。
PSEUDO-IMAGE FORMATS
caption:max-pointsize=pointsize | 限制最大磅值。
caption:split=boolean | 如有必要,分割文本以使标题适配画布。
gradient:angle=angle (in degrees) | 对于线性渐变,这指定从 color1 到 color2 的方向,以北(上)为基准、顺时针为正。对于放射状渐变,这指定渐变相对于其常规 X-Y 方向、以顺时针为正的旋转量。Imagemagick 6.9.2-5 支持。
gradient:bounding-box=WxH+X+Y | 将渐变限制到比图像尺寸更大或更小的区域。如果边界框定义的区域比图像小,则 color1 将成为背景色。Imagemagick 6.9.2-5 支持。
gradient:center=x,y | 指定放射状渐变中心点的坐标。默认为图像的中心。Imagemagick 6.9.2-5 支持。
gradient:direction=value | 指定线性渐变朝向上/下/左/右或对角的隅的方向。选项有:NorthWest、North、Northeast、West、East、SouthWest、South、SouthEast。Imagemagick 6.9.2-5 支持。
gradient:extent=value | 指定图像中心放射状渐变的形状。选项有:Circle、Diagonal、Ellipse、Maximum、Minimum。Circle 和 Maximum 即使对矩形图像也会绘制半径等于图像半宽和半高中较大者的圆形放射状渐变。Circle 和 Maximum 两者都等价于默认的放射状渐变。Minimum 即使对矩形图像也会绘制半径等于半宽和半高中较小者的圆形放射状渐变。Diagonal 即使对矩形图像也会绘制半径等于图像半对角线的圆形放射状渐变。Ellipse 对矩形图像绘制半径等于图像半宽和半高的椭圆形放射状渐变。Imagemagick 6.9.2-5 支持。
gradient:radii=x,y | 指定渐变的 x 和 y 半径。如果 x 半径和 y 半径相等,放射状渐变的形状将是圆形。如果不同,则形状将是椭圆。默认值为图像半宽和半高的最大值。Imagemagick 6.9.2-5 支持。
gradient:vector=x1,y1,x2,y2 | 指定从 vector1 (x1,y1) 到 vector2 (x2,y2) 的线性渐变方向。Color1(fromColor)将位于向量位置 x1,y1,color2(toColor)将位于向量位置 x2,y2。Imagemagick 6.9.2-5 支持。
histogram:unique-colors=false | 抑制图像唯一颜色的文本列表。
pango:align=left|center|right |
pango:auto-dir=true|false |
pango:ellipsize=start|middle|end |
pango:gravity-hint=natural|strong|line |
pango:hinting=none|auto|full |
pango:indent=points |
pango:justify=true|false |
pango:language=en_US|others |
pango:markup=true|false |
pango:single-paragraph=true|false |
pango:wrap=word|char|word-char |
pixel:compliance=value | 按照若干标准设置 "pixel:" 输出格式。选项有 SVG、None、Undefined、MVG、X11、XPM。默认会以 (s)rgb(r,g,b) 或 (s)rgba(r,g,b,a) 的形式列出 (s)RGB 颜色的值。颜色名称将不再被呈现。对于 sRGB 或 RGB 颜色,SVG、X11、XPM 和 None 选项会列出颜色名称(如果存在)。MVG 和 Undefined 选项列出十六进制值。当颜色以基于色相的色彩空间呈现或转换时,色相会列为整数,其他两个分量列为百分比。对于其他色彩空间,值可能列为百分比或分数值。将 depth 设为 8 会将值限制在 8 位范围内,基于色相的颜色除外。
txt:compliance=value | 按照若干标准设置括号内值的 "txt:" 格式。选项有 svg、none、undefined、mvg、x11、xpm。默认会以量子范围列出 (s)RGB 颜色的值。SVG、X11、XPM、MVG 和 None 选项对所有 Q 级别编译都以 8 位范围列出值。undefined 选项也以量子范围列出值。当颜色以基于色相的色彩空间呈现或转换时,色相会列为整数,其他两个分量列为百分比。对于其他色彩空间,值可能列为百分比或分数值。将 depth 设为 8 会将值限制在 8 位范围内,基于色相的颜色除外。
webp:tag=value | WebP 有大量 define,详见此 页面
xmp:validate={true,false} | 默认情况下,ImageMagick 会验证图像中嵌入的任何 XMP 配置文件。