Color Modes

命令行选项


 

以下是 ImageMagick 命令行工具识别的命令行选项列表。如果您想了解特定选项的描述,请单击导航栏上方的选项名称,您将直接转到它。除非另有说明,否则每个选项都由以下命令识别:convertmogrify

-adaptive-blur radius[xsigma]

自适应模糊像素,在边缘附近效果递减。

使用给定半径和标准偏差 (sigma) 的高斯算子。如果未给出 sigma,则默认为 1。

sigma 值是重要的参数,它决定了实际的模糊量。

仅使用 radius 来确定用于保存计算高斯分布的数组的大小。它应该是整数。如果未给出或设置为零,IM 将计算可为高斯分布提供有意义结果的最大可能半径。

-adaptive-resize geometry

使用数据相关三角剖分调整图像大小。

有关 geometry 参数的完整详细信息,请参阅 图像几何-adaptive-resize 选项默认为数据相关三角剖分。使用 -filter 选择不同的重采样算法。如果几何字符串中存在偏移,则会忽略偏移,并且 -gravity 选项无效。

-adaptive-sharpen radius[xsigma]

自适应锐化像素,在边缘附近效果增加。

使用给定半径和标准偏差 (sigma) 的高斯算子。如果未给出 sigma,则默认为 1。

sigma 值是重要的参数,它决定了实际的模糊量。

仅使用 radius 来确定用于保存计算高斯分布的数组的大小。它应该是整数。如果未给出或设置为零,IM 将计算可为高斯分布提供有意义结果的最大可能半径。

-adjoin

将图像连接到单个多图像文件。

此选项默认为启用。尝试将图像序列的所有图像保存到给定的输出文件中。但是,某些格式,例如 JPEG 和 PNG,不支持每个文件多于一张图像,在这种情况下,ImageMagick 被迫将每张图像写入单独的文件。因此,如果需要写入多张图像,则会通过在后缀前添加 -scene 号来修改给定文件名,以便为每张图像创建不同的名称。

使用 +adjoin 强制将每张图像写入单独的文件,无论文件格式是否允许每个文件多张图像(例如 GIF、MIFF 和 TIFF)。

在输出文件名中包含 C 样式的整数格式字符串将自动启用 +adjoin,并用于指定 -scene 号在文件名中的位置。这些字符串(例如 '%d' 或 '%03d')对于使用标准 printf()' C 库函数的人来说很熟悉。例如,命令

magick logo: rose: -morph 15 my%02dmorph.jpg

将创建 17 张图像(两个给定的图像加上 -morph 创建的 15 张图像),命名为:my00morph.jpg、my01morph.jpg、my02morph.jpg、...、my16morph.jpg。

总之,ImageMagick 尝试将所有图像写入一个文件,但如果存在以下任何条件,则将保存到多个文件……

  1. 输出图像的文件格式不允许多图像文件,
  2. 给出了 +adjoin 选项,或
  3. 输出文件名中存在 printf() 整数格式字符串(例如:“%d”)。

-affine sx,rx,ry,sy[,tx,ty]

设置组合旋转和缩放的绘图变换矩阵。

此选项设置一个变换矩阵,供后续 -draw-transform 选项使用。

矩阵项以逗号分隔的数值输入,可以加引号或不带空格。

在内部,变换矩阵有 3x3 个元素,但输入中省略了三个元素,因为它们是常数。原始图像中位置为 (x, y) 的像素的新 (变换后) 坐标 (x', y') 使用以下矩阵方程计算。

affine transformation

结果图像的大小是包含变换后源图像的最小矩形的大小。参数 txty 随后会移动图像像素,以便那些移出图像区域的像素被截断。

变换矩阵遵循左手法则像素坐标系:正 xy 方向分别向右和向下;正旋转是顺时针方向。

如果省略平移系数 txty,则它们默认为 0,0。因此,四个参数足以进行旋转和缩放而不进行平移。

分别在 xy 方向上按因子 sxsy 进行缩放,可通过以下方式实现。

请参阅 -transform-distort 方法 'Affineprojection' 获取更多信息

-affine sx,0,0,sy

通过位移 (tx, ty) 进行平移可通过以下方式实现

-affine 1,0,0,1,tx,ty

通过让 c = cos(a)、s = sin(a) 并使用以下方法,围绕原点(左上角)顺时针旋转角度 a

-affine c,s,-s,c

通过单个 -affine 操作来完成一系列 -affine 变换的累积效果,使用等于各个变换矩阵的乘积的矩阵。

尝试检测接近奇异的变换矩阵。如果矩阵行列式的大小足够小,则会拒绝它。

-alpha type

控制图像的 alpha/蒙版通道。

用于设置一个标志,指示是否使用现有 alpha 通道数据、创建 alpha 通道或对 alpha 通道执行其他操作。从以下列表中选择参数 type

activate
启用图像的透明度通道。请注意,通常应使用 Set 而不是此选项,除非您需要专门保留现有(但已关闭)的透明度通道。
associate
将 alpha 通道与图像关联。
background
将所有完全透明像素设置为背景颜色,同时保持其完全透明。这可以使某些图像文件格式(例如 PNG)更小,因为透明像素的 RGB 值更均匀,因此可以压缩得更好。
copy
打开 alpha/蒙版通道,然后将图像的灰度强度复制到 alpha 通道,将灰度掩码转换为透明形状掩码,以便相应地着色。颜色通道不会被修改。
deactivate
禁用图像的透明通道。不会删除或更改现有数据,只是关闭对该数据的使用。
分离
将 alpha 通道与图像分离。
extract
将 alpha 通道值复制到所有颜色通道,并关闭图像的透明度,从而生成图像形状的灰度蒙版。alpha 通道数据保持不变,只是被禁用。这是“复制”的反向操作。
关闭
禁用 alpha 通道。
如果透明
仅当 alpha 通道完全不透明时才禁用 alpha 通道。
开启
启用 alpha 通道。
opaque
启用 alpha/蒙版通道,并强制其完全不透明。
移除
将图像叠加在背景色上。
set
激活 alpha/蒙版通道。如果它之前被关闭,则还会将通道重置为不透明。如果图像已开启 alpha 通道,则不会产生任何影响。
形状
与“复制”相同,但还会使用当前背景色为生成的形状蒙版着色。也就是说,RGB 颜色通道将被替换为适当的 alpha 形状。
transparent
激活 alpha/蒙版通道,并强制其完全透明。这有效地创建了一个与原始图像大小相同的完全透明图像,并且仍然保留了所有原始 RGB 数据,但完全透明。

请注意,虽然过时的 +matte 操作与 "-alpha Off" 相同,但 >-matte 操作与 "-alpha Set" 相同,而不是 "-alpha On"。

-annotate degrees text
-annotate XdegreesxYdegrees text
-annotate XdegreesxYdegrees{+-}tx{+-}ty text
-annotate {+-}tx{+-}ty text

用文本注释图像

这是一个方便的选项,用于用文本注释图像。要更精确地控制文本注释,请使用 -draw

XdegreesYdegrees 控制应用于文本的剪切,而 txty 是偏移量,它们给出文本相对于任何 -gravity 设置的位置,默认为图像的左上角。

使用 -annotate degrees-annotate degreesxdegrees 生成文本的非剪切旋转。旋转方向为正,这意味着如果 degrees 为正,则为顺时针旋转。(这符合通常的数学约定,一旦意识到正 y 方向通常被认为是图像的“向下”方向。)

像素在图像中位置 (x, y) 的新 (转换) 坐标 (x', y') 使用以下矩阵方程计算。

annotate transformation

如果省略 txty,则它们默认为 0。这使得文本的左下角成为图像的左上角,这可能是不希望的。在这种情况下,添加 -gravity 选项会导致不错的结果。

文本是任何 UTF-8 编码的字符序列。如果 text 采用 '@mytext.txt' 的形式,则从文件 mytext.txt 读取文本。文件中的文本是字面意义上的;不识别嵌入的格式字符。

-antialias

启用/禁用在绘制字体和线条时渲染抗锯齿像素。

默认情况下,在绘制对象 (例如文本、线条、多边形等) 时会进行抗锯齿处理。使用 +antialias 禁用添加抗锯齿边缘像素。这将减少添加到图像中的颜色数量,仅保留直接绘制的颜色。也就是说,在绘制此类对象时不会添加混合颜色。

-append

垂直或水平连接当前图像。

此选项通过将所有当前图像依次从上到下连接来创建一个更长的单幅图像。使用 +append 将图像从左到右堆叠。

如果它们不是相同宽度,则较窄的图像将使用当前 -background 颜色设置进行填充,并且它们彼此之间的相对位置可以由当前 -gravity 设置控制。

对于更灵活的选项,包括在图像之间添加空格的能力,请使用 -smush

-attenuate value

减少 (或增强) 向图像添加噪声。

如果未设置,则值等效于 1.0,或最大噪声添加。

-authenticate password

使用密码解密 PDF。

使用此选项提供用于解密已使用 Microsoft Crypto API (MSC API) 加密的 PDF 的 password。不支持使用 MSC API 加密。

对于不同的加密方法,请参阅 -encipher-decipher

-auto-gamma

自动调整图像的 gamma 级。

这会计算图像的平均值,然后应用计算出的 -gamma 调整,使图像中的平均颜色值达到 50%。

这意味着任何固定的“灰色”图像都变成 50% 的灰色。

这对于具有很少或没有极端暗和亮区域的真实图像效果很好,但对于具有大量明亮天空或黑暗阴影的图像往往会失败。它对于图表或卡通图像也不起作用。

它使用 -channel 设置 (包括通道同步的特殊 'sync' 标志) 来确定使用和修改哪些颜色值。由于默认的 -channel 设置是 'RGB,sync',通道通过相同的 gamma 值一起修改,从而保留颜色。

-auto-level

自动调整图像的颜色级别。

这是一个“完美”的图像归一化运算符。它找到图像中确切的最小和最大颜色值,然后应用 -level 运算符将值拉伸到整个值范围。

该运算符通常不适用于真实图像、图像扫描或 JPEG 格式图像,因为单个“离群值”像素会为 -level 操作设置不良的 min/max 值。另一方面,它适合用于用于生成颜色查找表、失真映射或其他“数学”定义图像的颜色拉伸渐变图像。

该运算符与 -normalize-contrast-stretch-linear-stretch 运算符非常相似,但没有这些运算符可能存在的“直方图分箱”或“裁剪”问题。也就是说,-auto-level 是这些运算符的完美或理想版本。

它使用 -channel 设置 (包括通道同步的特殊 'sync' 标志) 来确定使用和修改哪些颜色值。由于默认的 +channel 设置是 'RGB,sync','sync' 确保颜色通道通过相同的 gamma 值一起修改,从而保留颜色,并忽略透明度。

-auto-orient

调整图像使其方向适合查看 (即左上角方向)。

此运算符读取并重置 EXIF 图像配置文件设置“Orientation”,然后对图像执行适当的 90 度旋转以调整图像方向,以便正确查看。

此 EXIF 配置文件设置通常使用数字相机中的重力传感器设置,但是直接向下或向上拍摄的照片可能没有适当的值。此外,在未重置此设置的情况下对图像进行“方向校正”可能会再次进行“校正”,从而导致错误的结果。如果先前已删除 EXIF 配置文件,则 -auto-orient 运算符将什么也不做。

-auto-threshold method

自动执行图像阈值化。

以下是有效的阈值化方法

未定义
0: 未指定方法 (等效于 'OTSU')。
Kapur
最大熵阈值化。
OTSU
基于聚类的图像阈值化。
Triangle
一种几何阈值化方法。

计算出的阈值将作为 auto-threshold:verbose 图像属性返回。要改为打印到您的设备,请使用 -define auto-threshold:verbose=true

-average

平均一组图像。

如果图像大小不一致,则会发生错误。

-backdrop

在背景板上居中显示图像。

此背景板覆盖整个工作站屏幕,可用于隐藏其他 X 窗口活动,同时查看图像。背景板的颜色由背景颜色指定。颜色使用 -fill 选项中描述的格式指定。

-background color

设置背景颜色。

颜色使用 -fill 选项中描述的格式指定。默认背景颜色 (如果未指定或在图像中找到) 为白色。

-bench iterations

测量性能。

对整个命令重复给定数量的 iterations,并报告用户时间和 elapsed 时间。例如,考虑以下命令及其输出。使用 -duration 运行基准测试固定秒数,并使用 -concurrent 并行运行基准测试 (需要 OpenMP 功能)。

$ magick logo: -resize 200% -bench 5 logo.png
Performance[1]: 5i 1.344ips 1.000e 3.710u 0:03.720
Performance[2]: 5i 1.634ips 0.549e 3.890u 0:03.060
Performance[3]: 5i 2.174ips 0.618e 3.190u 0:02.300
Performance[4]: 5i 1.678ips 0.555e 3.810u 0:02.980
Performance[4]: 5i 0.875657ips 6.880u 0:05.710

在此示例中,已完成 5 次迭代,每秒 2.174 次迭代,使用 3 个线程和 3.190 秒的用户分配时间,总 elapsed 时间为 2.300 秒。

-bias value{%}

在卷积图像时添加偏差。

此选项会偏移 -convolve 的输出,以便正值和负值相对于指定的偏差值。

这对于 ImageMagick 的非 HDRI 编译非常重要,因为它处理包含负值和正值的卷积。这种情况尤其发生在涉及高通滤波器或边缘检测的卷积中。如果没有输出偏差,则负值将被裁剪为零。

当使用具有 HDRI 编译时设置的 ImageMagick 时,-bias 不需要,因为 ImageMagick 能够存储/处理任何负结果,而不会裁剪到颜色值范围 (0..QuantumRange)。

请参阅页面 高动态范围图像 上关于 ImageMagick HDRI 实现的讨论。有关 HDRI 的更多信息,请访问 ImageMagick 用法 页面或此 维基百科 条目。

-bilateral-blur width{xheight}{+intensity-sigma}{+spatial-sigma}

一种非线性、边缘保持和降噪平滑滤波器,用于图像。它用附近像素强度值的加权平均值替换每个像素的强度。此权重基于高斯分布。权重不仅取决于像素的欧几里得距离,还取决于辐射差异 (例如颜色强度、深度距离等)。这保留了清晰的边缘。

强度 sigma 在强度空间中。较大的值意味着像素邻域 (请参阅 spatial-sigma) 中较远的颜色将混合在一起,从而导致较大区域具有近似相等的颜色。

空间 sigma 在坐标空间中。较大的值意味着只要颜色足够接近 (请参阅 intensity-sigma),较远的像素就会相互影响。当邻域直径大于零时,它会指定邻域大小,而不管 spatial-sigma 如何。否则,邻域直径与 spatial-sigma 成正比。

强度和空间 σ 的默认值为 0.75*直径0.25*直径

-black-point-compensation

使用黑点补偿。

-black-threshold value{%}

将低于阈值的像素强制为黑色,而将等于或高于阈值的像素保持不变。

阈值可以以百分比或 [0, QuantumRange] 范围内的绝对整数值给出,对应于所需的 -channel 值。有关阈值和结果值的更多详细信息,请参阅 -threshold

-blend geometry

通过给定的绝对值或百分比将一张图像融合到另一张图像中。

混合将根据给定的百分比和每个像素的透明度将图像平均在一起('加')。如果只给出单个百分比值,它会设置合成或“源”图像的权重,而背景图像的权重则由完全相反的数量确定。也就是说,-blend 30% 将“源”图像的 30% 与“目标”图像的 70% 合并。因此,它等同于 -blend 30x70%

-blue-primary x,y

设置蓝色色度主点。

-blue-shift factor

模拟月光下的夜间场景。从 1.5 的因子开始。

-blur radius
-blur radius{xsigma}

减少图像噪声并降低细节级别。

使用给定的 Sigma 值,将图像与高斯或正态分布进行卷积。公式为

gaussian distribution

sigma 值是重要的参数,它决定了实际的模糊量。

仅使用 radius 来确定用于保存计算高斯分布的数组的大小。它应该是整数。如果未给出或设置为零,IM 将计算可为高斯分布提供有意义结果的最大可能半径。

Radius 值越大,操作越慢。但是,Radius 值太小,可能会导致严重的混叠效应。作为指导方针,Radius 至少应是 Sigma 值的两倍,尽管三倍会产生更准确的结果。

此选项与 -gaussian-blur 的区别在于,它利用了分布的可分离性。在这里,我们在水平方向应用一维高斯矩阵,然后在垂直方向重复该过程。

-virtual-pixel 设置将决定如何将超出图像本身的像素模糊到最终结果中。

-border geometry

用彩色边框围绕图像。

使用 size 部分的 geometry 参数设置宽度和高度。有关 geometry 参数的完整详细信息,请参阅 图像几何。偏移量被忽略。

截至 IM 6.7.8-8,geometry 参数的行为如下

value
value 被添加到左右和上下。
value-xx
value-x 只添加到左右,上下保持不变。
xvalue-y
value-y 只添加到上下,左右保持不变。
value-xxvalue-y
value-x 被添加到左右,value-y 被添加到上下。
value-xx0
value-x 只添加到左右,上下保持不变。
0xvalue-y
value-y 只添加到上下,左右保持不变。
value%
value % 的宽度被添加到左右,value % 的高度被添加到上下。
value-xx%
value-x % 的宽度被添加到左右,上下保持不变。
xvalue-y%
value-y % 的高度被添加到上下,左右保持不变。
value-x%xvalue-y%
value-x % 的宽度被添加到左右,value-y % 的高度被添加到上下。
value-x%x0%
value-x % 的宽度被添加到左右,上下保持不变。
0%xvalue-y%
value-y % 的高度被添加到上下,左右保持不变。

通过 -bordercolor 设置来设置边框颜色。

-border 操作受当前 -compose 设置的影响,并假设这是使用默认的 'Over' 合成方法。它生成一个具有适当大小的颜色图像,通过当前 -bordercolor 设置,然后将原始图像叠加在这个网格图像的中心。这意味着,使用默认的 Over 合成方法,任何透明部分都可能被当前 -bordercolor 设置替换。

另请参阅 -frame 选项,它具有更多功能。

-bordercolor color

设置边框颜色。

颜色使用 -fill 选项中描述的格式指定。

默认边框颜色是 #DFDFDF这种灰度

-borderwidth geometry

设置边框宽度。

-brightness-contrast brightness
-brightness-contrast brightness{xcontrast}{%}

调整图像的亮度和/或对比度。

亮度和对比度值会对输入图像进行更改。它们不是绝对设置。亮度或对比度值为零表示没有变化。每个值的范围为 -100 到 +100。正值会增加亮度或对比度,负值会降低亮度或对比度。要仅控制对比度,请设置 brightness=0。要仅控制亮度,请设置 contrast=0 或将其留空。

您还可以使用 -channel 来控制应用亮度和/或对比度变化的通道。默认情况下,对所有通道应用相同的转换。

亮度和对比度参数被转换为线性变换的偏移量和斜率,并使用 -function polynomial "slope,offset" 应用。

斜率从对比度 = -100 时的 0 到对比度 = +100 时的几乎垂直变化。对于 brightness=0 和 contrast=-100,结果是完全的中灰度。对于 brightness=0 和 contrast=+100,结果将接近但不完全达到中灰度;也就是说,线性变换是在中灰度处的一条非常陡峭的垂直线。

此函数不支持负斜率,即反转图像。所有可实现的斜率都是零或正的。

偏移量从 brightness=-100 时的 -0.5 到 brightness=0 时的 0 到 brightness=+100 时的 +0.5 变化。因此,当 contrast=0 且 brightness=100 时,结果是完全白色。类似地,当 contrast=0 且 brightness=-100 时,结果是完全黑色。

由于参数值的范围是 -100 到 +100,添加 '%' 符号与不添加 '%' 符号没有区别。

-cache threshold

(此选项已由 -limit 选项替换)。

-canny radius
-canny radius{xsigma}{+lower-percent}{+upper-percent}

Canny 边缘检测器使用多阶段算法来检测图像中各种边缘。

阈值范围从 0% 到 100%(例如 -canny 0x1+10%+30%)其中 {+lower-percent} < {+upper-percent}。如果 {+upper-percent} 增加但 {+lower-percent} 保持不变,则会检测到较少的边缘组件,但它们的长度相同。如果 {+lower-percent} 增加但 {+upper-percent} 保持不变,则会检测到相同数量的边缘组件,但它们的长度会更短。默认阈值显示如下。

radius{xsigma} 控制应用于输入图像的高斯模糊,以减少噪声并平滑边缘。

sigma 值是重要的参数,它决定了实际的模糊量。

仅使用 radius 来确定用于保存计算高斯分布的数组的大小。它应该是整数。如果未给出或设置为零,IM 将计算可为高斯分布提供有意义结果的最大可能半径。

-caption string

为图像分配标题。

此选项设置图像的标题元数据,该图像在给出此选项后读取。要修改内存中图像的标题,请使用 "-set caption”。

标题可以包含 格式和打印图像属性 中列出的特殊格式字符。当标题最终分配给各个图像时,这些属性会被展开。

如果 string 的第一个字符是 @,则从名为字符串中剩余字符的文件中读取图像标题。从文件中读取的注释是文字的;不识别嵌入的格式字符。

标题元数据在图像本身不可见。为此,请改用 -annotate-draw 选项。

例如,

-caption "%m:%f %wx%h"  bird.miff

生成图像标题 MIFF:bird.miff 512x480(假设图像 bird.miff 的宽度为 512,高度为 480。

-cdl filename

使用色彩决策列表进行色彩校正。

这是一个示例色彩校正集合

<?xml version="1.0" encoding="UTF-8"?>
<ColorCorrectionCollection xmlns="urn:ASC:CDL:v1.2">
  <ColorCorrection id="cc06668">
    <SOPNode>
      <Slope> 0.9 1.2 0.5 </Slope>
      <Offset> 0.4 -0.5 0.6 </Offset>
      <Power> 1.0 0.8 1.5 </Power>
    </SOPNode>
    <SATNode>
      <Saturation> 0.85 </Saturation>
    </SATNode>
  </ColorCorrection>
</ColorCorrectionCollection>

-channel type

指定后续操作限制的图像颜色通道。

选择以下选项: RedGreenBlueAlphaGrayCyanMagentaYellowBlackOpacityIndexRGBRGBACMYKCMYKA

以上通道也可以指定为逗号分隔的列表,或者可以缩写为 'R', 'G', 'B', 'A', 'O', 'C', 'M', 'Y', 'K' 的连接。

数字 0 到 31 也可以用来指定通道,其中 0 到 5 是

    '0' 等于 RedCyan
    '1' 等于 GreenMagenta
    '2' 等于 BlueYellow
    '3' 等于 Black
    '4' 等于 AlphaOpacity
    '5' 等于 Index

例如,要仅选择 RedBlue 通道,可以使用以下任何方法

-channel Red,Blue
-channel R,B
-channel RB
-channel 0,2

可以使用特殊通道类型 All 指定图像中存在的全部通道。并非所有操作符都“支持通道”,但通常任何“灰度”图像操作符都将理解此设置。请参阅各个操作符文档。

除了正常的通道选择外,还可以指定一个额外的标志 'Sync'。默认情况下此标志处于启用状态,如果设置,则表示理解此标志的操作符应执行:通道的交叉同步。如果没有指定,那么大多数灰度操作符将完全独立地对每个通道(由 -channel 设置的其余部分指定)应用其图像处理操作。

例如,对于 -auto-level-auto-gamma 等操作符,颜色通道以完全相同的方式进行修改,以便颜色保持同步。如果没有设置它,则每个通道都单独和独立地进行修改,这可能会导致颜色失真。

-morphology 'Convolve' 方法和 -compose 数学方法也理解 'Sync' 标志,以根据 alpha 通道(如果存在)修改像素颜色。也就是说,它将修改图像处理,并理解完全透明的颜色不应对最终结果做出贡献。

基本上,默认情况下,操作符以同步的方式处理颜色通道,并将透明度视为特殊情况,除非修改 -channel 设置以移除 'Sync' 标志的影响。每个操作符是如何执行此操作取决于该操作符的当前实现。并非所有操作符现在都理解此标志,但这正在改变。

要打印完整通道类型列表,请使用 -list channel

默认情况下,ImageMagick 将 -channel 设置为 'RGBK,sync',这表示操作符作用于所有颜色通道,但透明度通道除外,并且所有颜色通道以完全相同的方式进行修改,并了解透明度(取决于所应用的操作)。'+channel' 形式的 +channel 将值重置为默认值。

-channel 设置影响的选项包括以下选项。 -auto-gamma-auto-level-black-threshold-blur-clamp-clut-combine-composite(仅限数学合成方法)、-convolve-contrast-stretch-evaluate-function-fx-gaussian-blur-hald-clut-motion-blur-morphology-negate-normalize-ordered-dither-rotational-blur-random-threshold-range-threshold-separate-threshold-white-threshold

警告,某些操作符在 +channel 默认设置生效时与任何用户定义的 -channel 设置(包括默认设置的等效项)的行为不同。这些操作符尚未理解新的“同步”标志。

例如,-threshold 默认情况下会在阈值化之前对图像进行灰度处理,如果未定义 -channel 设置。这不是“同步”标志控制的,目前。

此外,某些操作符,例如 -blur-gaussian-blur,会在 -channel 设置也启用了“alpha”通道的情况下修改其对颜色通道的处理。这通常是为了确保完全透明的颜色被视为完全透明,因此任何潜在的“隐藏”颜色都不会影响最终结果。通常会导致“光晕”效果。但是,较新的 -morphology 卷积等效项确实理解“同步”标志,因此默认情况下会正确处理透明度。

由于 alpha 通道在图像中是可选的,因此某些操作符会在图像没有 alpha 通道且 -channel 设置指示操作符使用 alpha 通道应用操作时,将图像的颜色通道读取为灰度 alpha 掩码。-clut 操作符就是一个很好的例子。

-channel-fx expression

交换、提取或复制一个或多个图像通道。

表达式由一个或多个通道组成,这些通道可以是助记符或数字(例如 red 或 0、green 或 1 等),并由以下某些操作符号分隔。

<=>  exchange two channels (e.g. red<=>blue)
=>   copy one channel to another channel (e.g. red=>green)
=    assign a constant value to a channel (e.g. red=50%)
,    write new image with channels in the specified order (e.g. red, green)
;    add a new output image for the next set of channel operations (e.g. red; green; blue)
|    move to the next input image for the source of channel data (e.g. | gray=>alpha)

例如,要从图像的红、绿和蓝通道创建 3 个灰度图像,请使用

-channel-fx "red; green; blue"

没有操作符号的通道意味着分离(即分号)。

这里我们取一个 sRGB 图像和一个灰度图像,并将灰度图像注入 alpha 通道

magick wizard.png mask.pgm -channel-fx '| gray=>alpha' wizard-alpha.png

使用类似的命令来定义读取掩码

magick wizard.png mask.pgm -channel-fx '| gray=>read-mask' wizard-mask.png

在本例中,我们计算图像所有不透明像素的平均 RGB 值

magick wizard-alpha.png -channel-fx "alpha=>read-mask" -channel rgb -format "%[fx:mean]\n" info:

让我们创建两个元通道,并用灰度像素的副本填充它们

magick gray.pgm -channel-fx "gray=>meta, gray=>meta1" gray.tif

请注意,我们将结果保存到 TIFF 图像文件中。并非所有格式都支持多光谱图像。TIFF、MIFF、MPC 和 FTXT 支持。

-channel-fx 选项之前添加 -debug pixel 来跟踪通道形态。

-charcoal factor

模拟炭笔画。

-chop geometry

从图像内部移除像素。

有关 geometry 参数的完整详细信息,请参阅 图像几何geometry 参数的 size 部分给出的 widthheight 给出了要移除的列数和行数。 geometry 参数的 offset 部分受 -gravity 设置的影响(如果存在)。

-chop 选项移除整行和整列像素,并将剩余的角块向左和向上移动以填补空隙。

虽然它可以移除像素的内部行和列,但它更常与 -gravity 设置和零偏移一起使用,以移除图像的一个边。将其与 -shave 相比,后者从图像的两侧移除相同数量的像素。

使用 -chop 有效地撤消了给定相同 geometry-gravity 设置的 -splice 的结果。

-clahe widthxheight{%}{+}number-bins{+}clip-limit{!}

对比度受限自适应直方图均衡。

图像被划分为 widthheight 像素的图块。附加 % 定义宽度和高度为图像尺寸的百分比。图块大小应大于要保留的特征的大小,并尊重图像的纵横比。添加 ! 强制指定精确的图块宽度和高度。 number-bins 是每个图块的直方图箱数(最小 2,最大 65536)。直方图箱数应小于单个图块中的像素数。 clip-limit 是局部对比度变化的对比度限制。对比度限制 2 到 3 是一个不错的起点(例如 -clahe 50x50%+128+3)。非常大的值将允许直方图均衡做任何事情,即导致最大局部对比度。值为 1 将导致原始图像。注意,如果省略箱数和剪辑限制,则它们分别默认为 128 和没有剪辑。

-clamp

将小于零的每个像素的值设置为零,并将大于量子范围的任何像素的值设置为量子范围(例如 65535),否则像素值保持不变。

-clip

应用剪辑路径(如果有)。

如果存在剪辑路径,则将其应用于后续操作。

例如,在命令

magick cockatoo.tif -clip -negate negated.tif

仅在剪辑路径内的像素被取反。

-clip 功能需要 SVG 支持。如果未提供 SVG 代理库,则忽略该选项。

使用 +clip 禁用后续操作的剪辑。

-clip-mask

根据此掩码剪辑图像。

使用当前图像的 alpha 通道作为掩码。任何白色区域都不会被任何后续的“图像处理操作符”修改,直到掩码被移除。剪辑掩码的黑色区域根据操作符的要求进行修改。

在某些方面,这与(尽管不是完全相同)定义矩形 -region 或在三图像 -composite 操作中使用掩码的负数(第三)图像类似。

使用 +clip-mask 禁用后续操作的剪辑。

-clip-path id

沿着 8BIM 配置文件中的命名路径剪辑。

这与 -clip 完全相同,只是在图像有多个可用路径的情况下选择特定的剪辑路径。ImageMagick 支持 UTF-8 编码。如果您的命名路径采用其他编码,请使用 `iconv` 将剪辑路径名称转换为该编码,否则路径名称将不匹配。

使用 +clip-path 禁用后续操作的剪辑。

-clone index(s)

克隆图像(或图像)。

在括号内(操作符通常使用的地方),它将克隆来自最后“推送”的图像序列的图像,并将它们添加到当前图像序列的末尾。在括号外(不建议这样做)它克隆来自当前图像序列的图像。

通过序列中的索引指定图像。第一个图像的索引为 0。负索引相对于序列的末尾;例如,−1 表示序列的最后一张图像。使用破折号指定图像范围(例如 0−4)。用逗号分隔多个索引,但不要使用空格(例如 0,2,5)。值为 '0−−1' 将有效克隆所有图像。

+clone 将简单地复制图像序列中的最后一张图像,因此等效于使用 −1 参数。

-clut

使用第二个图像中的每个相应通道替换第一张图像中的通道值,作为颜色查找表。

第二个(LUT)图像通常是一个渐变图像,包含每个通道如何被修改的直方图映射。通常它是一个单行或单列替换颜色值图像。如果大于单行或单列,则从从左上角到右下角的对角线上取值。

查找表由 -interpolate 设置进一步控制,这对于不是 ImageMagick 安装质量 (Q) 水平所需的完整长度的 LUT 尤其有用。此设置的好值是 'bilinear' 和 'catrom'。Catrom 可以返回一个有用的二阶连续性。

此操作符特别适合用特定颜色渐变替换灰度图像。

仅由 -channel 设置定义的通道值将替换其值。特别是,由于默认的 -channel 设置为 RGB,这意味着透明度(alpha/matte 通道)不受影响,除非修改 -channel 设置。当设置 alpha 通道时,-clut 操作符以与其他通道相同的方式对待它,这意味着 alpha/matte 值使用原始图像的 alpha/matte 值进行替换。

如果被修改的图像或查找表图像不包含透明度(即 -alpha 关闭),但 -channel 设置包括 alpha 替换,则假定图像表示用于替换 alpha 值的灰度渐变。也就是说,您可以使用灰度 CLUT 图像来调整现有图像的 alpha 通道,或者可以使用包含所需颜色的 CLUT 从颜色中为灰度图像着色,包括透明度。

另请参阅 -hald-clut,它根据 3D 颜色立方体的 2D 表示形式中的完整颜色 RGB 值的查找表替换颜色。

-coalesce

完全定义 GIF 动画序列的每个帧的外观,以形成“胶片条”动画。

根据每个图像的 -dispose 元数据覆盖图像序列中的每个图像,以在动画序列中的每个点重现动画的外观。所有图像应具有相同的大小,并分配相应的 GIF 处置设置,以便动画像 GIF 动画一样按预期继续工作。这样的帧比高度优化的 GIF 叠加图像更容易查看和处理。

可以使用 -layers 方法 'optimize' 在处理后重新优化动画,尽管不能保证恢复的 GIF 动画优化优于原始动画。

-colorize value

通过 value 指定的数量使用最近的 -fill 设置的颜色对图像进行着色。

以百分比指定着色量。可以使用逗号分隔的着色值列表分别应用于图像的红、绿、蓝通道(例如,-colorize 0,0,50)。

-colormap type

定义色图类型。

type 可以是 sharedprivate

此选项仅在默认 X 服务器视觉为 PseudoColorGrayScale 时适用。有关更多详细信息,请参阅 -visual。默认情况下,会分配共享色图。图像与其他 X 客户端共享颜色。某些图像颜色可能被近似,因此您的图像可能看起来与预期大不相同。如果选择 private,则图像颜色将准确显示。但是,当安装图像色图时,其他客户端可能会出现 technicolor

-colors value

设置图像中首选的颜色数量。

图像中的实际颜色数量可能少于您的请求,但绝不会多于您的请求。请注意,这是一个颜色缩减选项。具有比 value 指定的更少唯一颜色的图像将删除任何重复或未使用的颜色。现有调色板的排序可能会被更改。将图像从彩色转换为灰度时,在减少颜色数量之前将图像转换为灰度颜色空间更有效。有关详细信息,请参阅 颜色缩减算法

-color-matrix matrix

对图像应用颜色校正。

此选项允许进行饱和度更改、色相旋转、亮度到 alpha 以及各种其他效果。尽管可以使用可变大小的转换矩阵,但通常使用 5x5 矩阵来表示 RGBA 图像,以及 6x6 矩阵来表示 CMYKA(或带有偏移量的 RGBA)。该矩阵类似于 Adobe Flash 中使用的矩阵,除了偏移量位于第 6 列而不是第 5 列(以支持 CMYKA 图像)并且偏移量已归一化(将 Flash 偏移量除以 255)。

例如,要为带有偏移量的图像添加对比度,请尝试以下命令

magick kittens.jpg -color-matrix \
  " 1.5 0.0 0.0 0.0, 0.0, -0.157 \
    0.0 1.5 0.0 0.0, 0.0, -0.157 \
    0.0 0.0 1.5 0.0, 0.0, -0.157 \
    0.0 0.0 0.0 1.0, 0.0,  0.0 \
    0.0 0.0 0.0 0.0, 1.0,  0.0 \
    0.0 0.0 0.0 0.0, 0.0,  1.0" kittens.png

-colorspace value

设置图像颜色空间。

选择:

CMY          CMYK         Gray         HCL
HCLp         HSB          HSI          HSL
HSV          HWB          Jzazbz       Lab
LCHab        LCHuv        LMS          Log
Luv          OHTA         OkLab        OkLCH
Rec601YCbCr  Rec709YCbCr  RGB          scRGB
sRGB         Transparent  xyY          XYZ
YCbCr        YCC          YDbDr        YIQ
YPbPr        YUV          Undefined

要打印完整颜色空间列表,请使用 -list colorspace

为了更准确地将颜色转换为或从线性 RGB、CMYK 或灰度颜色空间转换,请使用 -profile 选项。请注意,如果图像格式未另行指示,ImageMagick 会假设 sRGB 颜色空间。对于颜色空间转换,首先移除伽马函数以生成线性 RGB。

RGB 转换为其他颜色空间
CMY
C=QuantumRange−R
M=QuantumRange−G
Y=QuantumRange−B
CMYK — 从上面开始 CMY
K=min(C,Y,M)
C=QuantumRange*(C−K)/(QuantumRange−K)
M=QuantumRange*(M−K)/(QuantumRange−K)
Y=QuantumRange*(Y−K)/(QuantumRange−K)
灰度
Gray = 0.212656*R+0.715158*G+0.072186*B
HSB — 色相、饱和度、亮度;像一个锥体向下尖
H=周围周长的角度(0 到 360 度);H=0 是红色;角度增加到绿色
S=从轴向向外距离
B=从底部向上沿轴线的距离;B=max(R,G,B);强度类似
HSL — 色相、饱和度、亮度;像一个双锥体端对端,顶端和底部都有峰值
H=周围周长的角度(0 到 360 度);H=0 是红色;角度增加到绿色
S=从轴向向外距离
L=从底部向上沿轴线的距离;L=0.5*max(R,G,B) + 0.5*min(R,G,B);强度类似
HWB — 色相、白度、黑度
色相(复杂公式)
白度(复杂公式)
黑度(复杂公式)
LAB
L(与 X、Y、Z 相关的复杂公式)
A(与 X、Y、Z 相关的复杂公式)
B(与 X、Y、Z 相关的复杂公式)
LinearGray
LinearGray = 0.298839*R+0.586811*G+0.114350*B
LOG
I1(涉及 R 对数的复杂公式)
I2(涉及 G 对数的复杂公式)
I3(涉及 B 对数的复杂公式)
OHTA — 近似主成分变换
I1=0.33333*R+0.33334*G+0.33333*B; 强度类似
I2=(0.50000*R+0.00000*G−0.50000*B)*(QuantumRange+1)/2
I3=(−0.25000*R+0.50000*G−0.25000*B)*(QuantumRange+1)/2
Rec601Luma
Gray = 0.298839*R+0.586811*G+0.114350*B
Rec601YCbCr
Y=0.2988390*R+0.5868110*G+0.1143500*B; 强度类似
Cb=(−0.168736*R-0.331264*G+0.500000*B)*(QuantumRange+1)/2
Cr=(0.500000*R−0.418688*G−0.081312*B)*(QuantumRange+1)/2
Rec709Luma
Gray=0.212656*R+0.715158*G+0.072186*B
Rec709YCbCr
Y=0.212656*R+0.715158*G+0.072186*B; 强度类似
Cb=(−0.114572*R−0.385428*G+0.500000*B)+(QuantumRange+1)/2
Cr=(0.500000*R−0.454153*G−0.045847*B)+(QuantumRange+1)/2
sRGB
如果 R ≤ .0.0031308 则 Rs=R/12.92 否则 Rs=1.055 R ^ (1.0 / 2.4) - 0.055
如果 G ≤ .0.0031308 则 Gs=B/12.92 否则 Gs=1.055 R ^ (1.0 / 2.4) - 0.055
如果 B ≤ .0.0031308 则 Bs=B/12.92 否则 Bs=1.055 R ^ (1.0 / 2.4) - 0.055
XYZ
X=0.4124564*R+0.3575761*G+0.1804375*B
Y=0.2126729*R+0.7151522*G+0.0721750*B
Z=0.0193339*R+0.1191920*G+0.9503041*B
YCC
Y=(0.298839*R+0.586811*G+0.114350*B) (带有复杂缩放);强度类似
C1=(−0.298839*R−0.586811*G+0.88600*B) (带有复杂缩放)
C2=(0.70100*R−0.586811*G−0.114350*B) (带有复杂缩放)
YCbCr
Y=0.2988390*R+0.5868110*G+0.1143500*B; 强度类似
Cb=(−0.168736*R−0.331264*G+0.500000*B)*(QuantumRange+1)/2
Cr=(0.500000*R−0.418688*G−0.081312*B)*(QuantumRange+1)/2
YIQ
Y=0.298839*R+0.586811*G+0.114350*B; 强度类似
I=(0.59600*R−0.27400*G−0.32200*B)*(QuantumRange+1)/2
Q=(0.21100*R−0.52300*G+0.31200*B)*(QuantumRange+1)/2
YPbPr
Y=0.2988390*R+0.5868110*G+0.1143500*B; 强度类似
Pb=(−0.168736*R−0.331264*G+0.500000*B)*(QuantumRange+1)/2
Pr=(0.500000*R−0.418688*G−0.081312*B)*(QuantumRange+1)/2
YUV
Y=0.298839*R+0.586811*G+0.114350*B; 强度类似
U=(−0.14740*R−0.28950*G+0.43690*B)*(QuantumRange+1)/2
V=(0.61500*R−0.51500*G−0.10000*B)*(QuantumRange+1)/2

请注意,scRGB 颜色空间需要 HDRI 支持,否则它会像线性 RGB 一样工作。

使用 Undefined 颜色空间来识别多光谱图像。

-color-threshold start-color-stop-color

返回一个二进制图像,其中指定范围内的所有颜色都更改为白色。所有其他颜色都更改为黑色。

-combine

+combine colorspace

将一个或多个图像组合到单个图像中。

组合图像的通道(先前由 -channel 设置)取自序列中每个图像的灰度值,按顺序。对于默认的 -channel 设置 RGB,这意味着第一个图像被分配到 Red 通道,第二个图像被分配到 Green 通道,第三个图像被分配到 Blue 通道。

此选项可以被认为是 -separate 的逆,只要通道设置相同。因此,在以下示例中,最终图像应该是原始图像的副本。

magick original.png -channel RGB -separate sepimage.png
convert sepimage-0.png sepimage-1.png sepimage-2.png -channel RGB \
  -combine imagecopy.png

-comment string

在图像中嵌入注释。

此选项设置图像元数据注释,该注释在给出此选项后读取。要修改内存中图像的注释,请使用 "-set comment".

注释可以包含 格式和打印图像属性 中列出的特殊格式字符。当注释最终分配给各个图像时,这些属性会被展开。

如果 string 的第一个字符是 @,则从名为字符串中其余字符的文件中读取图像注释。从文件中读取的注释是文字的;不识别嵌入的格式字符。

注释元数据在图像本身中不可见。为此,请改用 -annotate-draw 选项。

例如,

-comment "%m:%f %wx%h"  bird.miff

生成图像注释 MIFF:bird.miff 512x480(假设图像 bird.miff 的宽度为 512,高度为 480。)

-compare

对图像及其重建之间的差异进行数学和视觉注释。

这是两个相同大小图像的 convert 版本“compare”。语法如下,但允许其他指标。

magick image.png reference.png -metric RMSE -compare \ 
difference.png

要获取指标值,请使用字符串格式“%[distortion]”。

magick image.png reference.png -metric RMSE -compare -format \
   "%[distortion]" info:

-complex operator

对图像序列执行复杂数学运算

从以下运算符中选择
add
conjugate
divide
magnitude-phase
multiply
real-imaginary
subtract

可以选择使用 divide 运算符 SNR,使用 -define complex:snr=float

-compose operator

设置图像组合类型。

有关 alpha 合成的详细讨论,请参阅 Alpha 合成

此设置会影响将两个(或多个)图像以某种方式合并在一起的图像处理运算符。这包括运算符 -compare-composite-layers composite、-flatten-mosaic-layers merge、-border-frame-extent

它也是 "composite" 命令的主要选项之一。

-composite

对两个图像和可选蒙版执行 alpha 合成。

根据当前 -compose 设置,获取第一个图像 'destination' 并覆盖第二个图像 'source'。'source' 或 'overlay' 图像的位置由 -gravity-geometry 设置控制。

如果给定第三个图像,则将其视为相对于第一个 'destination' 图像的灰度混合 'mask' 图像。此蒙版与源图像混合。但是对于 'displace' 合成方法,蒙版用于提供单独的 Y 位移图像。

如果 -compose 方法需要额外的数值参数或标志,则可以通过设置 -set 'option:compose:args' 来适当地提供这些参数,以适合合成方法。

某些 -compose 方法可以修改 'destination' 图像在覆盖区域之外。默认情况下禁用此功能。您可以通过设置定义:-define 'compose:clip-to-self=true' 来启用此功能。

SVG 合成规范要求颜色和不透明度值在零和 QuantumRange 之间,包括零和 QuantumRange。您可以使用此选项允许超出此范围的值:-set 'option:compose:clamp=false

-compress type

在写入图像时使用 type 指定的像素压缩。

选择:NoneBZipFaxGroup4JPEGJPEG2000LosslessLZWRLEZip

要打印完整压缩类型列表,请使用 -list compress

指定 +compress 将二进制图像存储在一个未压缩的格式中。默认值是指定图像文件类型的压缩类型。

如果指定了 LZW 压缩,但未启用 LZW 压缩,则图像数据以未压缩的 LZW 格式写入,可以由 LZW 解码器读取。这可能会导致 GIF 文件比预期更大。

Lossless 指的是无损 JPEG,只有在 JPEG 库已修补以支持它时才可用。通常不建议使用无损 JPEG。

在写入 ICO 文件时,您可以通过指定 Zip 压缩来请求以 PNG 格式编码图像。

在写入 JNG 文件时,指定 Zip 压缩以请求以 PNG “IDAT” 格式编码 alpha 通道,或 JPEG 以请求以 JPG “JDAA” 格式编码。

使用 -quality 选项设置 JPEG、PNG、MIFF 和 MPEG 编码器使用的压缩级别。使用 -sampling-factor 选项设置 JPEG、MPEG 和 YUV 编码器用于下采样色度通道的采样因子。

-connected-components connectivity

connected-components 标签检测图像中的连接区域,可以选择 4 方向或 8 方向连接。

使用 -define connected-components:verbose=true 输出与每个唯一标签关联的统计信息。

-contrast

增强或降低图像对比度。

此选项增强图像较亮和较暗元素之间的强度差异。使用 -contrast 增强图像,或使用 +contrast 降低图像对比度。

为了获得更显著的效果,您可以重复该选项

magick rose: -contrast -contrast rose_c2.png

-contrast-stretch black-point
-contrast-stretch black-point{xwhite-point}{%}

通过拉伸强度值范围来增加图像对比度。

在执行拉伸时,最多将 black-point 个像素变黑,最多将 white-point 个像素变白。或者,如果使用百分比,则最多将 black-point % 个像素变黑,最多将 white-point % 个像素变白。

在 ImageMagick 6.4.7-0 之前,-contrast-stretch 将最多 black-point 个像素变黑,最多将 total pixels minus white-point 个像素变白。或者,如果使用百分比,则最多将 black-point % 个像素变黑,最多将 100% minus white-point % 个像素变白。

请注意,-contrast-stretch 0 将修改图像,使图像的最小值和最大值分别拉伸到 0 和 QuantumRange,而不会由于在两端烧毁或裁剪而丢失任何数据。这与 -normalize 不相同,后者等效于 -contrast-stretch 0.15x0.05%(或在 ImageMagick 6.4.7-0 之前,-contrast-stretch 2%x99%)。

内部运算符通过创建直方图箱,然后使用该箱来修改图像。因此,当它们最初落入相同的“箱”时,某些颜色可能会合并在一起。

所有通道都按相同数量进行归一化,以保持颜色完整性,当使用默认 +channel 设置时。指定任何其他 -channel 设置将独立地归一化 RGB 通道。

另请参阅 -auto-level 以获得数学图像的“完美”归一化。

此运算符正在审核重新开发。

-convolve kernel

将图像与用户提供的卷积核进行卷积。

kernel 是以逗号分隔的整数列表(没有空格)指定的矩阵,按从左到右的顺序排列,从第一行开始。目前,仅支持奇数维内核,因此指定 kernel 中的条目数必须为 32=9、52=25、72=49 等。

请注意,-convolve 运算符支持 -bias 设置。此选项会根据用户指定的偏差值来偏移卷积,以便正负结果是相对的。这对于处理包含负值以及正值的 ImageMagick 的非 HDRI 编译非常重要。这种情况尤其发生在涉及高通滤波器或边缘检测的卷积中。如果没有输出偏差,则负值将被裁剪为零。

当使用 HDRI 编译时设置的 ImageMagick 时,-bias 不需要,因为 ImageMagick 能够存储/处理任何负结果,而不会裁剪到颜色值范围 (0..QuantumRange)。有关 ImageMagick 的 HDRI 实现的讨论,请参阅页面 高动态范围图像。有关 HDRI 的更多信息,请访问 ImageMagick 用法 页面或此 维基百科 条目。

-copy geometry offset

将像素从图像的一个区域复制到另一个区域。

-crop geometry{@}{!}

剪切图像的一个或多个矩形区域。

有关 geometry 参数的完整详细信息,请参阅 图像几何

geometry 参数的 widthheight 给出裁剪后图像的大小,而 offset 中的 xy(如果存在)给出裁剪图像相对于原始图像的左上角位置。要指定要删除的数量,请改用 -shave

如果存在 xy 偏移量,则生成单个图像,包含来自裁剪区域的像素。偏移量指定裁剪区域的左上角位置,相对于图像的左上角向下和向右测量。如果存在 -gravity 选项并使用 NorthEastEastSouthEast 重力,则它给出从图像右边缘到裁剪区域右边缘的距离向左。类似地,如果 -gravity 选项存在且使用 SouthWestSouthSouthEast 重力,则距离是在底部边缘向上测量。

如果省略 xy 偏移量,则生成一系列指定几何形状的图块,覆盖整个输入图像。如果指定几何形状超出输入图像的尺寸,则最右边的图块和最底部的图块会更小。

您可以将 @ 添加到几何参数以平均分配生成的图块。

通过在几何参数中添加感叹号标志,裁剪图像的虚拟画布页面大小和偏移量设置为好像几何参数是视口或窗口。这意味着画布页面大小设置为您指定的完全相同的大小,图像偏移量设置为相对于区域裁剪的左上角。

如果裁剪图像“错过了”虚拟画布上的实际图像,则会返回一个特殊的单像素透明“错过”图像,并给出“裁剪错过”警告。

在裁剪图像之前,可能需要 +repage 图像以确保裁剪坐标系重新定位到可见图像的左上角。同样,您可能希望在裁剪后使用 +repage 删除留下的页面偏移量。这在您要写入支持图像偏移量(例如 PNG)的图像格式时尤其重要。

-cycle amount

按量位移图像调色板。

Amount 定义每个调色板条目的位移数量。

-debug events

启用调试输出。

events 参数指定要记录的事件。它可以是 NoneAllTrace 或由以下域组成的逗号分隔列表:AccelerateAnnotateBlobCacheCoderConfigureDeprecateExceptionLocaleRenderResourceSecurityTemporaryFileTransformX11User

例如,要记录缓存和 blob 事件,请使用。

magick -debug "Cache,Blob" rose: rose.png

User 域通常为空,但开发人员可以在其私有 ImageMagick 复制中记录用户事件。

要打印调试方法的完整列表,请使用 -list debug

使用 -log 选项指定调试输出的格式。

使用 +debug 关闭所有日志记录。

调试也可以使用 MAGICK_DEBUG 环境变量 设置。 MAGICK_DEBUG 环境变量允许的值与 -debug 选项相同。

-decipher filename

解密并恢复先前由 -encipher 转换的像素。

filename 指定的文件获取密码。

有关更多信息,请参阅网页 ImageMagick: 对图像进行加密或解密

-deconstruct

查找图像之间发生变化的区域

给定一系列相同大小的图像(例如由 -coalesce 生成),用相对于前一张图像更改区域的较小图像替换第二张及后续图像。

生成的图像序列可用于优化动画序列,但对于 GIF 动画,它不会正常工作,因为动画的一部分可以从不透明变为透明。

此选项实际上等同于 -layers 方法 'compare-any'。

-define key{=value}...

添加通常用于控制编码器和图像处理操作的特定全局设置。

此选项为编码器和解码器创建一个或多个定义,以便在读取和写入图像数据时使用。定义通常用于控制图像文件格式编码器模块和图像处理操作,超出正常手段提供的范围。定义的设置在 -verbose 信息(“info:”输出格式)中列为“Artifacts”。

如果 value 对于定义缺失,则会为此名称创建值为空的标志定义。这用于控制开/关选项。使用 +define key 删除先前创建的定义。使用 +define "*" 删除所有现有定义。

相同的“artifact”设置也可以使用 -set "option:key" "value" 选项定义,这还允许在定义的值中使用 格式化和打印图像属性

optionkey 不区分大小写(它们转换为小写以在解码器中使用),而 value 区分大小写。

此类设置在全局范围内,影响所有图像和操作。

请参阅 ImageMagick 定义 了解已识别的定义的列表。例如

magick bilevel.tif -define ps:imagemask eps3:stencil.ps

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

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

-delay ticks
-delay ticksxticks-per-second {<} {>}

在暂停后显示下一张图片。

此选项对调节图像序列的动画很有用 ticks/ticks-per-second 秒必须在显示下一张图片之前过期。默认情况下,图像序列之间没有延迟。默认的 ticks-per-second 为 100。

使用 > 仅在图像延迟值超过给定延迟时更改图像延迟。 < 仅在当前值小于给定延迟时更改图像延迟。例如,如果您指定 30> 并且图像延迟为 20,则图像延迟不会更改。但是,如果图像延迟为 40 或 50,则延迟将更改为 30。将给定延迟括在引号中以防止 <> 被您的 shell 解释为文件重定向。

-delete indexes

从图像序列中删除指定索引的图像。

通过序列中的索引指定图像。第一张图像的索引为 0。负索引相对于序列的末尾,例如,-1 表示序列的最后一张图像。使用破折号指定图像范围(例如 0-4)。用逗号分隔索引(例如 0,2)。使用 +delete 删除当前图像序列中的最后一张图像。使用 -delete 0--1 删除整个图像序列。

您还可以从持久注册表中删除图像,例如,-delete registry:checkers

-density width
-density widthxheight

设置图像的水平和垂直分辨率以渲染到设备。

此选项指定在编码栅格图像时存储的图像分辨率,或在渲染(读取)矢量格式(例如 Postscript、PDF、WMF 和 SVG)到栅格图像时画布分辨率。图像分辨率提供了应用于渲染到输出设备或栅格图像时的度量单位。默认度量单位为每英寸点数 (DPI)。可以使用 -units 选项选择每厘米点数。

默认分辨率为每英寸 72 点,这相当于每像素一个点(Macintosh 和 Postscript 标准)。计算机屏幕通常为每英寸 72 或 96 点,而打印机通常支持每英寸 150、300、600 或 1200 点。

如果文件格式支持,则可以使用此选项更新存储的图像分辨率。请注意,Photoshop 会从专有的嵌入配置文件中存储和获取图像分辨率。如果未从图像中剥离此配置文件,则 Photoshop 将继续使用其以前的分辨率处理图像,而忽略标准文件头中指定的分辨率。

-density 选项设置一个 attribute 并且不会更改底层栅格图像。它可用于通过调整应用于像素的缩放比例来调整桌面出版目的的渲染大小。要更改图像中的像素数量,使其具有相同的物理尺寸(以英寸或厘米为单位),请使用 -resample 选项。

-depth value

图像的深度。

颜色深度是每个像素每个通道的位数。例如,对于使用 RGB 的 16 位深度,红色、绿色和蓝色的每个通道的范围可以从 0 到 2^16-1(65535)。使用此选项来指定原始图像格式的深度(例如 GRAY、RGB 或 CMYK),这些格式的深度未知,或者更改读取后任何图像的深度。默认情况下,在降低像素深度时,会截去高阶位。使用 -dither FloydSteinberg 来将量化误差分布到相邻像素。

使用 +depth 将深度恢复为默认值。

-descend

通过下降窗口层次结构获取图像。

-deskew threshold{%}

校直图像。40% 的阈值适用于大多数图像。

使用 -set option:deskew:auto-crop true | false 自动裁剪图像。

-despeckle

减少图像中的斑点。

-direction type

以右到左或左到右渲染文本。需要 RAQM 代理库和 复杂文本布局

-displace horizontal-scale{%}{!}
-displace horizontal-scalexvertical-scale{%}{!}

根据位移图平移图像像素。

使用此选项,'叠加' 图像和可选的'蒙版' 图像用作位移图,用于位移对叠区域中每个点的查找内容。就像位移图是一个'透镜',它会重定向穿过它的光线,从而呈现原始'背景' 图像的扭曲视图。

位移图的任何完美灰度区域都会产生图像的零位移。黑色区域产生给定的最大负位移查找点,而白色产生最大正位移查找点。

请注意,被位移的是'背景' 的查找,而不是图像本身的位移。因此,位移图区域包含'白色' 的区域将使查找点'偏移' 一个正值,从而生成目标图像的副本,该副本在覆盖区域的右侧/向下偏移。也就是说,图像看起来好像在负的左/向上方向上被'偏移'。理解这一点对于理解位移图的工作原理非常重要。

给定的参数定义了特定地图可以产生的像素的最大位移量。如果位移比例足够大,则还可以查找位于位移图边界之外的'背景' 图像部分。也就是说,您可以非常轻松地将原始图像的一部分从覆盖区域复制到覆盖区域。

百分号 (%) 标志使位移比例相对于覆盖图像的大小(100% = 图像的一半宽度/高度)。使用'!' 将百分比参数切换为引用目标图像大小。这些标志是从 IM v6.5.3-5 开始添加的。

通常提供一个单一的灰度位移图,它将与给定的缩放值一起确定位移可以发生的单一方向(正向或负向)。但是,如果您还指定了第三张图像,该图像通常用作 mask,则 合成图像 用于水平 X 位移,而 蒙版图像 用于垂直 Y 位移。这允许您为 X 和 Y 方向定义完全不同的位移值,并允许您在 scale 范围内查找任何点。换句话说,每个像素都可以查找任何其他附近的像素,从而产生复杂的二维位移,而不是简单的一维向量位移。

或者,与其提供两个单独的图像,从 IM v6.4.4-0 开始,您可以使用叠加图像的'红色' 通道来指定水平或 X 位移,而使用'绿色' 通道来指定垂直或 Y 位移。

从 IM v6.5.3-5 开始,叠加图像中的任何 alpha 通道都用作目标图像的不透明度的蒙版。但是,覆盖区域之外的区域不会受到影响。

-display host:display[.screen]

指定要联系的 X 服务器。

此选项与 convert 一起用于从该 X 服务器获取图像或字体。请参阅 X(1)

-dispose method

定义 GIF 处置图像设置,用于创建或读取的图像。

图层处置方法定义了在动画的当前'帧'完成显示(经过其'延迟' 期间)之后,但在动画的下一帧叠加到显示上之前,如何修改显示的图像。

以下是有效的阈值化方法

未定义
0: 未指定处置(相当于 'none')。
1: 不处置,只叠加下一帧图像。
背景
2: 使用背景颜色清除帧区域。
先前
3: 清除到此帧叠加之前的图像。

您也可以使用上面给出的数字,这是 GIF 格式在内部用来表示上述设置的。

要打印处置方法的完整列表,请使用 -list dispose

使用 +dispose,关闭设置并防止重置读取图像的图层处置方法。

使用 -set 'dispose' method 设置内存中图像的图像处置方法。

-dissimilarity-threshold value

子图像匹配的最大 RMSE(默认值为 0.2)。

-dissolve src_percent[xdst_percent]

通过给定的百分比将图像溶解到另一张图像中。

合成图像的不透明度乘以给定的百分比,然后将其'叠加' 到主图像上。如果 src_percent 大于 100,则开始溶解主图像,使其在值为'200' 时变得透明。如果给出两个百分比,则每个图像都溶解到给定的百分比。

请注意,溶解百分比不会相加,两个不透明的图像溶解'50,50',会产生 75% 的透明度。要对两个图像进行 50% + 50% 的混合,您需要使用溶解值'50,100'。

-distort method arguments

使用给定的 method 和其所需的 arguments 扭曲图像。

arguments 是一个包含用逗号或空格分隔的浮点数列表的字符串。浮点数的数量和含义取决于正在使用的扭曲 method

从这些扭曲类型中选择

方法 描述
ScaleRotateTranslate
SRT
首先按比例缩放和旋转一个给定的'中心',然后将该'中心' 翻译到新位置,依次进行。它是一种指定'仿射' 类型扭曲的替代方法,但没有剪切效果。它还提供了一种旋转和位移较小图像以将其平铺到较大背景上的好方法(即二维动画)。
参数的数量决定了缩放、旋转和平移操作中每个参数的具体含义。
2:
比例 角
3:
X,Y 角
4:
X,Y 比例 角
5:
X,Y 比例X,比例Y 角
6:
X,Y 比例 角 新X,新Y
7:
X,Y 比例X,比例Y 角 新X,新Y
这实际上是指定二维线性'仿射'或'仿射投影' 扭曲的另一种方法。
仿射 通过移动至少 3 个或更多控制点集(如下所述)来线性扭曲图像。理想情况下,给出 3 个集或 12 个浮点数,允许根据这些三个点线性缩放、旋转、剪切和平移图像。另请参阅相关的'仿射投影'和'SRT' 扭曲。
给出超过 3 个控制点对(12 个数字)是至少平方拟合到最佳匹配线性仿射扭曲。如果只给出 2 个控制点对(8 个数字),则执行两点图像平移、旋转和缩放,没有任何可能的剪切、翻转或对结果图像的纵横比更改。如果只提供一个控制点对,则仅平移图像(这可能是一个浮点非整数平移)。
此扭曲不包括任何形式的透视扭曲。
RigidAffine 刚性仿射(也称为欧几里得变换)类似于仿射,但将扭曲限制为 4 个参数(S, R, Tx, Ty)其中 Sy = Sx 和 Ry = -Rx,以便扭曲仅具有缩放、旋转和平移。没有倾斜。至少需要两个控制点对。
AffineProjection 使用给定的仿射矩阵线性扭曲图像,该矩阵由 6 个预计算系数组成,形成一组仿射方程,将源图像映射到目标图像。

sx, rx, ry, sy, tx, ty

有关详细信息以及这些系数的含义,请参阅 -affine 设置。
“仿射” 和 “SRT” 扭曲提供了一种定义这种扭曲的替代方法,ImageMagick 会进行必要的计算来生成所需的系数。您可以使用带有其他变体的 -verbose 设置查看内部生成的系数。
BilinearForward
BilinearReverse
双线性扭曲,需要至少 4 组坐标对,或 16 个值(见下文)。请注意,扭曲后线条可能不会保持直线,但坐标之间的距离将保持一致。
“BilinearForward” 用于将矩形映射到任何四边形,而“BilinearReverse” 用于将任何四边形映射到矩形,同时在每种情况下保留直线边。
请注意,“BilinearForward” 可以生成无效像素,这些像素将使用 -mattecolor 颜色设置着色。此外,如果四边形被“翻转”,图像可能会消失。
未来计划生成真正的双线性扭曲,它将尝试将任何四边形映射到任何其他四边形,同时保留边缘(和边缘距离比)。
透视 透视扭曲图像,使用 4 个或更多组控制点列表(如下所述)。超过 4 组(16 个数字)的控制点提供最小二乘拟合,以实现更精确的扭曲(用于图像配准和全景效果)。少于 4 组将退回到“仿射”线性扭曲。
透视扭曲图像确保直线保持直线,但扭曲图像的比例会发生变化。地平线是反锯齿的,可以使用 -mattecolor 设置设置“天空”颜色。
PerspectiveProjection 基于一组 8 个预计算系数执行“透视”扭曲。您可以通过查看“透视”扭曲的 -verbose 输出或自己计算来获取这些系数。如果最后两个透视缩放系数为零,则剩余的 6 个表示转置的“仿射矩阵”。
多项式 使用一组对应控制点执行 N 次 2D “多项式”扭曲。多项式的阶数决定了所需的最小控制点数。阶数 1 等同于 -distort Affine。阶数 1.5 等同于 -distort BilinearReverse。典型用法是用于 2 次扭曲。没有 +distort 多项式。
围绕圆形以给定角度弧形图像(极坐标映射的变体)。
arc_angle
图像横向弧形的角度。
rotate_angle
从垂直中心旋转结果图像的角度。
top_radius
将源图像的顶边设置为此半径。
bottom_radius
将底边设置为此半径(径向缩放)。
生成的图像始终调整大小以最佳适合结果图像(就像使用 +distort 一样),同时尽可能保留原始图像的比例和纵横比,并由用户提供的参数。需要所有四个参数来更改“弧形”图像的整体纵横比。
这是一种极坐标扭曲的变体,旨在尝试保留图像的纵横比,而不是直接进行笛卡尔到极坐标的转换。
极坐标 类似于“弧”,但对图像执行完整的笛卡尔到极坐标映射。也就是说,输入图像的高度映射到半径限制,而宽度则在角度限制之间包裹。
参数:Rmax,Rmin CenterX,CenterY, start,end_angle
所有参数都是可选的。其中 Rmin 默认值为零,中心到图像中心,角度从 -180(顶部)到 +180(顶部)。如果给定 Rmax 的特殊值“0”,则从中心到最近边缘的距离将用于输出图像的半径,这将确保整个图像可见(尽管缩小)。但是,特殊值“-1”将使用从中心到最远角的距离,这可能会“裁剪”输入矩形图像的角,但将生成与具有相同参数的“DePolar”的完全相反的结果。
如果使用 +distort 形式的扭曲 (+distort),则输出图像中心将默认为虚拟画布的 0,0,并将图像大小调整以确保整个输入图像在虚拟画布上的输出图像中可见。
DePolar 使用与“极坐标”扭曲相同的参数和含义,但生成反向极坐标到笛卡尔的扭曲。
特殊的 Rmax 设置“0”可能会裁剪输入图像的角。但是,使用特殊的 Rmax 设置“-1”(最大中心到角距离)将确保整个扭曲图像保留在生成的结果中,以便相同的参数到“极坐标”将反转扭曲,重新生成原始图像。请注意,由于此扭曲需要对圆弧进行区域重采样,而这无法由内置的 EWA 重采样函数处理。因此,关闭正常的 EWA 过滤器。建议使用某种形式的“超采样”图像处理技术来生成高质量的结果。
桶形 根据 Helmut Dersch 定义的四个系数 (A,B,C,D) 执行桶形或枕形扭曲,以校正径向镜头失真。也就是说,在照片中,使直线再次变直。

参数:A B C [ D [ X , Y ] ]
Ax Bx Cx Dx Ay By Cy Dy [ X , Y ]

以便它形成函数

Rsrc = r * ( A*r3 + B*r2 + C*r + D )

其中 X,Y 是可选的扭曲中心(默认为图像中心)。
第二种形式通常用于扭曲图像,而不是校正镜头失真。
BarrelInverse 这与“桶形”非常相似,具有相同的参数集和参数处理。但是它使用径向多项式的逆,以便它形成函数

Rsrc = r / ( A*r3 + B*r2 + C*r + D )

请注意,这不是“桶形”扭曲的反向,而是一种不同的桶形径向扭曲方法。
Shepards 使用逆平方距离插值方法 (Shepards 方法) 对给定的控制点列表(任意数量)进行扭曲。控制点实际上是对图像周围给定控制点的“局部”位移(保留控制点附近区域的外观和旋转。为了获得最佳结果,应添加额外的控制点来“锁定”角、边和其他不变部分的位置,以防止其移动。
该扭曲类似于使用钉子或别针拉伸“太妃糖”,或者将一块“果冻”移动到新位置,扭曲果冻的表面。
在内部,它等同于生成一个位移图(请参阅 -displace)以使用同名的 -sparse-color 方法查找源图像颜色。

要打印扭曲方法的完整列表,请使用 -list distort

许多上述扭曲方法,例如“Affine”、“Perspective”和“Shepards”,使用控制点列表来定义这些点在给定图像中如何在目标图像中进行扭曲。每组四个浮点数表示源图像坐标,紧随其后是目标图像坐标。这会生成类似于... 的值列表。

U1,V1 X1,Y1 U2,V2 X2,Y2 U3,V3 X3,Y3 ... Un,Vn Xn,Yn

其中源图像上的 U,V 映射到目标图像上的 X,Y

例如,要使用“perspective”扭曲扭曲图像,需要至少 4 组坐标,或 16 个数字。这是内置“rose:”图像的透视扭曲。请注意,空格用于分组 4 组坐标对,以便更容易阅读和理解。

magick rose:  -virtual-pixel black \
  -distort Perspective '0,0,0,0  0,45,0,45  69,0,60,10  69,45,60,35' \
   rose_3d_rotated.gif"

如果给定扭曲的坐标对数超过所需数量,则扭曲方法会“最小二乘”拟合以产生所有给定坐标对的最佳结果。如果给定点的数量少于理想数量,扭曲通常会退回到可以处理较少坐标的更简单形式的扭曲(通常是线性的“Affine”扭曲)。

通过使用更多坐标,您可以使用图像配准工具在重叠图像中找到匹配的坐标对,以改善扭曲的“拟合”。当然,不良的坐标对也可能使“拟合”变差。始终建议谨慎。

颜色根据圆柱重采样 -filter 从源图像获取,使用一种称为 EWA 重采样的特殊技术。这会产生非常高质量的结果,尤其是在输出图像缩小时(缩小),这在使用“perspective”扭曲时非常常见。例如,这里我们查看一个一直延伸到地平线的无限平铺“平面”。

magick -size 90x90 pattern:checkerboard -normalize -virtual-pixel tile \
  -distort perspective  '0,0,5,45  89,0,45,46  0,89,0,89  89,89,89,89' \
   checks_tiled.jpg

请注意,涉及地平线的无限平铺透视图像可能非常慢,因为许多像素被压缩以生成每个靠近“地平线”的单个像素。您可以通过指定特殊的 -filter 设置“point”来关闭 EWA 重采样(如果计划使用超采样代替,则建议这样做)。

如果图像生成无效像素,例如上例中的“天空”,-distort 将使用当前 -mattecolor 设置来处理这些像素。如果您不希望这些像素可见,请将颜色设置为匹配地面的其余部分。

输出图像大小默认与输入图像相同。这意味着如果扭曲图像的一部分落在了“扭曲空间”的查看区域之外,则这些部分会被裁剪并丢失。但是,如果您使用操作符的 + 形式 (+distort),则操作符将尝试(如果可能)显示整个扭曲图像,同时保留正确的“虚拟画布”偏移量,用于图像分层。此偏移量可能需要使用 +repage 来删除,如果它不希望被删除。

设置 -verbose 设置将导致 -distort 尝试输出内部系数以及等效于扭曲的 -fx,以供专家研究和调试目的。这可能并非所有扭曲都可用。

您也可以指定特殊的“-define distort:viewport={geometry_string}”设置,该设置将指定扭曲图像空间生成的“视口”图像的大小和偏移量。

设置“-define distort:scale=scale_factor”将按该因子缩放输出图像(视口或其他),而不会更改扭曲图像的查看内容。这可用于对图像进行“超采样”以获得更高质量的结果,或用于在图像周围平移和缩放(通过适当的视口更改或扭曲后裁剪和调整大小)。

设置“-define resample:verbose=1”将输出 EWA(椭圆加权平均)重采样算法创建的圆柱过滤器查找表。请注意,此表使用平方半径查找值。这通常仅用于调试 EWA 重采样。

-distribute-cache port

启动分布式像素缓存服务器。

-dither method

在通过选项应用一般颜色缩减时,或在保存到特定格式时自动应用 Riemersma 或 Floyd-Steinberg 错误扩散抖动到图像。默认情况下启用此功能。

抖动将两个或多个颜色放置在相邻的像素中,以便眼睛可以重现图像原始颜色的更接近近似值。这减少了重现图像所需的色彩数量,但代价是颜色模式的较低级别。错误扩散抖动可以使用任何一组颜色(生成或用户定义)到图像。

抖动默认情况下处于开启状态,要关闭它,请使用设置的加号形式,+dither。这也会渲染没有文本或图形抗锯齿的 PostScript。禁用抖动通常(但并非总是)会导致更快的处理速度、更少数量的颜色,但图像着色更像卡通。通常在具有颜色渐变的区域产生“颜色条带”效果。

颜色缩减操作符 -colors-monochrome-remap-posterize,使用它们创建的缩减颜色集对图像应用抖动。这些操作符也用作将图像保存到具有有限颜色支持的格式(例如 GIF:XBM: 等)时的自动颜色缩减的一部分,因此在这些情况下也可能使用抖动。

或者,您可以使用 -random-threshold 生成纯随机抖动。或者使用 -ordered-dither 应用阈值映射抖动模式,使用均匀颜色映射,而不是特定颜色映射。

例如,使用“-define dither:diffusion-amount=35%”来控制 Floyd-Steinberg 抖动的量。

-draw string

用一个或多个图形基元注释图像。

使用此选项用一个或多个图形基元注释或装饰图像。基元包括形状、文本、变换和像素操作。

形状基元

x,y
线
x0,y0 x1,y1
矩形
x0,y0 x1,y1
圆角矩形
x0,y0 x1,y1 wc,hc
x0,y0 x1,y1 a0,a1
椭圆
x0,y0 rx,ry a0,a1
x0,y0 x1,y1
折线
x0,y0 ... xn,yn
多边形
x0,y0 ... xn,yn
贝塞尔曲线
x0,y0 ... xn,yn
path
规范
图像
操作符 x0,y0 w,h filename

文本基元

文本
x0,y0 string

文本重力基元

gravity
NorthWest、North、NorthEast、West、Center、East、SouthWest、South 或 SouthEast

文本重力基元仅影响文本的放置,并且不会与其他基元交互。它等同于使用 -gravity 命令行选项,只是它的范围限于其出现的 -draw 选项。

变换基元

rotate
度数
平移
dx,dy
scale
sx,sy
skewX
度数
skewY
度数

像素操作基元

颜色
x0,y0 method
蒙版
x0,y0 method

形状基元以 -fill 设置指定的颜色绘制。对于未填充的形状,请使用 -fill none。您可以使用 -stroke-strokewidth 设置来可选地控制笔划(形状的“轮廓”)。

一个 point 基元由像素平面上单个 指定,即由一组有序的整数坐标 xy 指定。(由于它只涉及一个像素,因此 point 基元不受 -stroke-strokewidth 的影响。)

一个 line 基元需要一个起点和一个终点。

一个 rectangle 基元由位于左上角和右下角的两个点对指定。

一个 roundRectangle 基元采用与 rectangle 相同的角点,后跟要删除的圆角的宽度和高度。

circle 基元创建一个圆盘(填充)或圆形(未填充)。给出中心和边界上任意一点。注意,通过使用平移,您可以消除计算圆边缘坐标的需要,而可以直接给出半径。

magick -size 100x60 xc: -stroke SeaGreen  -fill PaleGreen -strokewidth 2 -draw 'translate 50,30 circle 0,0 25,0' circle.gif

arc 基元用于将椭圆段内接到给定的矩形中。一个 arc 需要用于 rectangle 的两个角点(见上文),后跟弧段的起始和结束角度(例如 130,30 200,100 45,90)。然后用线段连接生成的起始点和结束点,并填充由此产生的椭圆段。

使用 ellipse 绘制部分(或整个)椭圆。给出中心点、水平和垂直“半径”(椭圆的 半轴)以及以度数表示的起始和结束角度(例如 100,100 100,150 0,360)。

polylinepolygon 基元需要三个或更多点来定义它们的轮廓。一个 polyline 只是一个 polygon,其中最终点不会描绘到起始点。当未填充时,这是一个 多边形线。如果 -stroke 设置为 none(默认值),则 polylinepolygon 相同。

一个 坐标 是由空格或可选逗号分隔的两个整数对。

例如,要定义以 100,100 为中心的圆,该圆扩展到 150,150,请使用

-draw 'circle 100,100 150,150'

Bezier 基元创建样条曲线,需要三个或多个点来定义其形状。第一个和最后一个点是 节点,曲线会达到这些点,而任何中间坐标都是 控制点。如果指定了两个控制点,则每个端节点与其顺序对应的控制点之间的线确定了曲线在该端点的切线方向。如果指定了一个控制点,则从端节点到一个控制点的线确定了曲线在每个端点的切线方向。如果指定了两个以上控制点,则额外的控制点共同确定曲线的中间形状。为了绘制复杂的曲线,强烈建议使用 path 基元或使用具有重复的起始和结束节点的多个四点贝塞尔段进行绘制。例如

-draw 'bezier 20,50 45,100 45,0 70,50'
-draw 'bezier 70,50 95,100 95,0 120,50'

一个 path 表示对象的轮廓,它根据 moveto(设置新的当前点)、lineto(绘制直线)、curveto(绘制贝塞尔曲线)、arc(椭圆或圆形弧)和 closepath(通过绘制一条线到最后一个 moveto 来闭合当前形状)元素定义。复合路径(即具有子路径的路径,每个子路径由一个 moveto 后跟一个或多个线或曲线操作组成)是可能的,以允许诸如对象中的 甜甜圈孔 之类的效果。(请参阅 路径。)

使用 image 将图像与另一幅图像合成。在 image 关键字后跟合成操作符、图像位置、图像大小和文件名

-draw 'image SrcOver 100,100 225,225 image.jpg'

您可以使用 0,0 作为图像大小,这意味着使用图像头中找到的实际尺寸。否则,它将缩放至给定尺寸。有关可用 alpha 合成方法的详细讨论,请参阅 Alpha 合成

目前,-draw image 选项无法使用需要参数的“特殊增强合成操作符”,例如“dissolve”。

使用 text 用文本注释图像。在文本坐标后跟一个字符串。如果字符串包含嵌入空格,请将其括在单引号或双引号中。

例如,以下内容将 Works like magick! 注释到名为 bird.miff 的图像中。

-draw "text 100,100 'Works like magick!'"

有关用文本注释图像的另一种便捷方法,请参阅 -annotate 选项。

rotate 基元围绕主图像的原点旋转后续形状基元和文本基元。

-draw "rotate 45 text 10,10 'Works like magick!'"

translate 基元平移后续形状和文本基元。

scale 基元缩放它们。

skewXskewY 基元相对于主图像或区域的原点倾斜它们。

这些变换修改当前仿射矩阵,该矩阵从 -affine 选项定义的初始仿射矩阵初始化。变换在 -draw 选项中是累积的。初始仿射矩阵不受影响;该矩阵仅由另一个 -affine 选项的出现而改变。如果出现另一个 -draw 选项,则当前仿射矩阵从初始仿射矩阵重新初始化。

使用 color 基元将像素的颜色更改为填充颜色(请参阅 -fill)。在像素坐标后跟一个方法

point
replace
floodfill
filltoborder
reset

请考虑目标像素由您的坐标指定。该 point 方法重新着色目标像素。该 replace 方法重新着色与目标像素颜色匹配的任何像素。Floodfill 重新着色与目标像素颜色匹配且是邻居的任何像素,而 filltoborder 重新着色任何不是边界颜色的邻居像素。最后,reset 重新着色所有像素。

使用 matte 将像素蒙版值更改为透明。在像素坐标后跟一个方法(请参阅 color 基元以获取方法的描述)。该 point 方法更改目标像素的蒙版值。该 replace 方法更改与目标像素颜色匹配的任何像素的蒙版值。Floodfill 更改与目标像素颜色匹配且是邻居的任何像素的蒙版值,而 filltoborder 更改任何不是边界颜色的邻居像素的蒙版值(-bordercolor)。最后 reset 更改所有像素的蒙版值。

您可以使用 -fill-font-box 分别设置基元颜色、字体和字体边界框颜色。选项按命令行顺序处理,因此请务必在 -draw 选项 之前 使用这些选项。

以数字开头的字符串必须加引号(例如,使用 '1.png' 而不是 1.png)。

绘图基元符合 Magick 矢量图形 格式。

注意,绘图需要一个 alpha 通道。如果没有,则隐式创建所有不透明的 alpha 通道。

-duplicate count,indexes

复制图像一次或多次。

通过其在序列中的索引指定要复制的图像的数量和图像。第一个图像的索引为 0。负索引相对于序列的结尾,例如,-1 表示序列的最后一张图像。使用破折号指定图像范围(例如 0-4)。用逗号分隔索引(例如 0,2)。使用 +duplicate 复制当前图像序列中的最后一张图像。

-edge radius

检测图像中的边缘。

-emboss radius{xsigma

浮雕图像。

-encipher filename

对像素进行加密,以便以后通过 -decipher 解密。

filename 指定的文件获取密码。

有关更多信息,请参阅网页 ImageMagick: 对图像进行加密或解密

-encoding type

指定文本编码。

选择以下选项

AdobeCustom     AdobeExpert
AdobeStandard   AppleRoman
BIG5            GB2312
Latin 2         None
SJIScode        Symbol
Unicode         Wansung

-endian type

指定图像的字节序(MSBLSB)。

要打印完整的字节序类型列表,请使用 -list endian 选项。

使用 +endian 回退到未指定字节序。

-enhance

将数字滤波器应用于增强噪声图像。

-equalize

对图像通道进行直方图均衡。

要对所有通道同时执行直方图均衡,请将图像转换为其他颜色空间,例如 HSL、OHTA、YIQ 或 YUV,然后均衡适当的强度通道,然后转换回 RGB。

例如,使用 HSL,我们有: ... -colorspace HSL -channel lightness -equalize -colorspace sRGB ...

对于 YIQ、YUV 和 OHTA 使用红色通道。例如,OHTA 是一个主成分变换,它将大部分信息放在第一个通道中。这里我们有 ... -colorspace OHTA -channel red -equalize -colorspace sRGB ...

-evaluate operator value

通过评估算术、关系或逻辑表达式来修改通道像素。

(有关一些多参数函数的 -function 运算符。如果需要更复杂的计算,请参阅 -fx 运算符。)

每个 operator 的行为总结如下。为简洁起见,下面提到的“像素”的数值是该像素对应通道的值,而“归一化像素”是该数值除以最大值(安装相关)QuantumRange。 (如果使用归一化像素,则在其他计算之后,通过将其乘以 QuantumRange 来恢复到完整范围。)

operator 摘要(请参阅下面的详细信息)
Abs value 添加到像素并返回绝对值。
Add value 添加到像素。
AddModulus value 添加到像素,并对 QuantumRange 取模。
And 像素与 value 的二进制 AND。
Cos, Cosine 以频率 value 对像素应用余弦函数,并添加 50% 的偏差。
Divide 将像素除以 value
Exp 自然对数指数函数
Exponential 自然对数指数函数
InverseLog 对归一化像素应用反向缩放对数。
LeftShift 将像素值左移 value 位(即,将像素乘以 2value)。
Log 对归一化像素应用缩放对数。
Max 将像素设置为 value 和当前像素 value 的最大值(即,将当前小于 value 的任何像素设置为 value)。
Mean value 添加到像素,并除以 2。
Median 从图像序列中选择中值。
Min 将像素设置为 value 和当前像素 value 的最小值(即,将当前大于 value 的任何像素设置为 value)。
Multiply 将像素乘以 value
Or 像素与 value 的二进制 OR。
Pow 将归一化像素提升到 value 次方。
RightShift 将像素值右移 value 位(即,将像素除以 2value)。
RMS 将像素平方,并加上 value
RootMeanSquare 将像素平方,并加上 value
Set 将像素设置为 value
Sin, Sine 以频率 value 对像素应用正弦函数,并添加 50% 的偏差。
Subtract 从像素中减去 value
Xor 像素与 value 的二进制 XOR。
Gaussian-noise
Impulse-noise
Laplacian-noise
Multiplicative-noise (这些与相应的 -noise 运算符等效。)
PoissonNoise
Uniform-noise
Threshold 阈值化大于 value 的像素。
ThresholdBlack 将像素阈值化到等于或低于 value 的零值。
ThresholdWhite 将像素阈值化到大于 value 的最大值。

仅对图像中先前设置的每个 -channel 应用指定的函数。如有必要,计算结果将被截断(裁剪)以适合区间 [0, QuantumRange]。图像的透明度通道表示为“alpha”值 (0 = 完全透明),因此,例如,alpha 通道的 2 倍 Divide 将使图像半透明。将百分号“%”附加到值以指定 QuantumRange 的百分比。

要打印 -evaluate 运算符的完整列表,请使用 -list evaluate

可以使用 -level+level 运算符以及适当的参数来实现 AddSubtractMultiply 方法的结果,以线性方式修改颜色值的整体范围。但是请注意,-level 将透明度视为“蒙板”值 (0 = 不透明),而 -evaluate 使用“alpha”值。

AddModulus 自 ImageMagick 6.4.8-4 起已添加,并提供对 QuantumRange 取模的加法。因此,它等效于 Add,除非结果像素值超出区间 [0, QuantumRange]。

Exp 或 Exponential 自 ImageMagick 6.6.5-1 起已添加,并且作用于归一化像素值。使用 Expvalue 应为负值,以便生成衰减指数函数。非负值将始终产生大于 1 的结果,因此超出区间 [0, QuantumRange]。

exp(value × u)

如果输入图像被平方,例如使用 -function polynomial "2 0 0",则结果将是衰减高斯函数。

Log 自 ImageMagick 6.4.2-1 起已添加,并且作用于归一化像素值。这是一个 缩放 对数函数。使用 Logvalue 提供一个 缩放因子,用于调整对数函数图中的曲率。应用于归一化值 u 的公式如下。

log(value × u + 1) / log(value + 1)

Pow 自 ImageMagick 6.4.1-9 起已添加,并且作用于归一化像素值。请注意,Pow-gamma 运算符相关。例如,-gamma 2 等效于 -evaluate pow 0.5,即“平方根”函数。使用 -gamma 的值只是使用 Pow 的值的倒数。

CosineSine 已于 IM v6.4.8-8 添加,并将图像值转换为根据 (余)弦波函数的值。也可以使用同义词 CosSin。输出值偏置 50%,并按 50% 归一化,以适应各自的颜色值范围。 value 缩放函数的 周期(其频率),从而确定将在输入颜色范围内生成多少个“波”。例如,如果 value 为 1,则有效周期只是 QuantumRange;但如果 value 为 2,则有效周期是 QuantumRange 的一半。

0.5 + 0.5 × cos(2 π u × value).

使用 -set 'option:evaluate:clamp=true 来钳制评估值。

另请参阅 -function 运算符,它是 evaluate 的多值版本。

-evaluate-sequence operator

通过在图像序列上评估算术、关系或逻辑表达式来修改通道像素。确保序列中的所有图像都在相同的颜色空间中,否则可能会得到意外的结果,例如,将 -colorspace sRGB 添加到您的命令行。

要打印 -evaluate-sequence 运算符的完整列表,请使用 -list evaluate

-exit

在此处停止处理。

此选项之后不再处理其他选项。在脚本中很有用,以强制 magick 命令在实际关闭它正在处理选项的管道之前退出。您也可以将此选项作为 magick 命令行上的最终选项,而不是隐式输出图像,以完全防止任何图像写入。请注意,即使 NULL: 编解码器也需要至少一张图像,才能“不写入”!此选项根本不需要任何图像。

-extent geometry

设置图像大小和偏移。

如果图像被放大,则未填充区域设置为背景颜色。要定位图像,请在 geometry 规范中使用偏移量,或在前面加上 -gravity 设置。要指定如何将图像与背景组合,请使用 -compose

以下命令将 JPEG 图像缩小或放大以适合 800x600 显示。如果输入图像的纵横比不是正好 4:3,则图像将居中放置在 800x600 的黑色画布上

magick input.jpg -resize 800x600 -background black -compose Copy \
  -gravity center -extent 800x600 -quality 92 output.jpg

该命令还可以与比率一起使用。如果图像不是该比率,则将裁剪以使其适合。 -gravity 设置具有预期效果。

以下命令裁剪 JPEG 图像,使其具有 4:3 的纵横比

magick input.jpg -extent 4:3 -quality 92 output.jpg

附加 < 仅在图像小于指定大小不裁剪图像如果图像大于指定大小(即无操作)。附加 > 仅在图像大于指定大小不扩展图像如果图像小于指定大小(即无操作)。(即无操作)。

有关 geometry 参数的完整详细信息,请参阅 图像几何

-extract geometry

从图像中提取指定区域。

此选项最适用于从非常大的原始图像中提取子区域。请注意,这两个命令是等效的

magick -size 16000x16000 -depth 8 -extract 640x480+1280+960 \
  image.rgb image.png",
convert -size 16000x16000 -depth 8 'image.rgb[640x480+1280+960]' \
  image.rgb image.png"

如果您省略偏移量,如

magick -size 16000x16000 -depth 8 -extract 640x480 \
  image.rgb image.png

则图像被调整大小到指定的尺寸,等效于

magick -size 16000x16000 -depth 8 -resize 640x480 image.rgb image.png

有关 geometry 参数的完整详细信息,请参阅 图像几何

-family fontFamily

设置文本的字体系列。

此设置建议 ImageMagick 应该尝试使用的字体系列来渲染文本。如果找到该系列,则使用它;如果没有,则替换为默认字体(例如“Arial”)或已知类似的字体系列(例如,如果请求“System”但未找到,则可能使用“Courier”)。请注意,该系列可以是 CSS 样式字体列表。

有关影响字体的其他设置,请参阅选项 -font-pointsize-stretch-style-weight

-features distance

显示图像每个通道在每个方向(水平、垂直、左对角线和右对角线)的指定距离的(共生矩阵)纹理度量特征。

Angular Second Moment       Sum Entropy
Contrast                    Entropy
Correlation                 Difference Variance
Sum of Squares Variance     Difference Entropy
Inverse Difference Moment   Information Measure of Correlation 1
Sum Average                 Information Measure of Correlation 2
Sum Variance                Maximum Correlation Coefficient

-fft

实现离散傅里叶变换 (DFT)。

此选项是 ImageMagick 6.5.4-3 的新功能(现在在 ImageMagick 6.6.0-9 中适用于 Windows 用户)。它将图像从普通(空间)域转换为频率域。在频率域中,图像表示为不同幅度的复正弦波的叠加。图像的 x 和 y 坐标是 x 和 y 方向上的可能频率,像素强度值是对应于正弦波幅度的复数。例如,请参阅 傅里叶变换离散傅里叶变换快速傅里叶变换

此选项提供单个图像名称作为输出。但是,输出结果将有两个组件。它要么是两帧图像,要么是两个单独的图像,具体取决于指定图像格式是否支持多帧图像。我们获得双输出结果的原因是,频率域使用复数表示图像,这无法直接可视化。因此,复数值会自动分离成两个组件图像表示。第一个组件是复数的幅度,第二个是复数的相位。例如,请参阅 复数

幅度和相位组件图像必须使用不限制颜色或压缩图像的图像格式指定。因此,建议使用 MIFF、TIF、PFM、EXR 和 PNG 图像格式。除 PNG 之外,所有这些格式都支持多帧图像。例如,

magick image.png -fft fft_image.miff

生成幅度图像为 fft_image.miff[0],相位图像为 fft_image.miff[1]。类似地,

magick image.png -fft fft_image.png

生成幅度图像为 fft_image-0.png 和相位图像为 fft_image-1.png。如果您更喜欢这种表示形式,则可以通过在命令行中跟随 -fft 后面包含 +adjoin 来强制任何其他格式生成两个输出图像。

输入图像可以是任何大小,但如果它不是方形且维度偶数,则会自动填充到输入图像的宽度或高度较大者,并填充到偶数像素数。填充将发生在输入图像的底部和/或右侧。生成的输出幅度和相位图像在此大小下为正方形。填充类型取决于 -virtual-pixel 设置。

两个输出组件的动态范围都将位于 [0, QuantumRange] 内,因此无需启用 HDRI。相位值通常范围从 0 到 2*π,但会缩放以跨越完整的动态范围。(早期版本中,相位值未进行 HDRI 缩放,但幅度值未进行缩放。)幅度图像未缩放,因此通常包含非常小的值。因此,图像通常会显示为完全黑色。为了查看任何细节,幅度图像通常会使用对数函数增强为通常称为频谱的内容。使用对数函数来增强较暗值的对比度,而不是较亮的值。这可以通过以下方式完成,例如:

magick fft_image.miff[0] -contrast-stretch 0 \
  -evaluate log 1000 fft_image_spectrum.png"

其中使用 -contrast-stretch 0 或 -auto-level 来先将图像缩放至完整的动态范围。 -evaluate 对数函数的参数通常在 100 到 10,000 之间,具体取决于要在频谱中显示的细节量。较大的值会产生更多可见的细节。但是,过多的细节可能会隐藏重要的特征。

使用 FFTW 代理库才能使用 -fft

使用 +fft 生成两个输出图像,它们是复值傅里叶变换的实部和虚部。

但是,由于实部和虚部可能包含负值,因此需要在 IM 中启用 HDRI。在这种情况下,您必须使用 MIFF、TIF、PFM 或 MPC 格式来获取实部和虚部组件结果,因为这些格式可以保留负值和分数值,而不会截断它们或截断小数部分。使用 MIFF 或 TIF,应添加 -define quantum:format=32,以允许这些图像类型在 HDRI 模式下正常工作,而不会出现截断。

+fft 生成的实部和虚部组件图像也是方形的,维度是偶数,这是由于与幅度和相位组件图像相同的填充,如上所述。

请参阅页面 高动态范围图像 上关于 ImageMagick HDRI 实现的讨论。有关 HDRI 的更多信息,请参阅 ImageMagick 使用 页面、弗雷德的 ImageMagick 傅里叶变换处理页面 或此 维基百科 条目。

默认情况下,FFT 是归一化的(而 IFT 不是)。使用 "-define fourier:normalize=forward" 明确地对 FFT 进行归一化,并对 IFT 进行非归一化。

-fill color

填充图形原语时使用的颜色。

此选项接受颜色名称、十六进制颜色或数值 RGB、RGBA、HSL、HSLA、CMYK 或 CMYKA 规范。有关如何正确指定颜色参数的说明,请参阅 颜色名称

将颜色规范括在引号中以防止您的 shell 解释 "#" 或括号。

例如,

-fill blue
-fill "#ddddff"
-fill "rgb(255,255,255)"

有关更多详细信息,请参阅 -draw

要打印完整颜色名称列表,请使用 -list color 选项。

-filter type

在调整图像大小或扭曲图像时使用此 type 类型的过滤器。

使用此选项来影响图像在 -resize-distort 等操作期间的调整大小操作。例如,您可以使用简单的调整大小过滤器,例如

Point       Hermite       Cubic
Box         Gaussian      Catrom
Triangle    Quadratic     Mitchell
CubicSpline

使用 -define filter:lobes={2,3,4} 指定 CubicSpline 过滤器的支持大小。

BesselSinc 过滤器也提供(以及更快的 SincFast 等效形式)。但是,这些过滤器本身通常无用,因为它们是无限过滤器,被裁剪到过滤器的支持大小。不建议直接使用它们,除非通过专家设置(请参阅下文)。

相反,这些特殊过滤器函数通常由 -filter 设置定义的窗口函数进行窗口化。也就是说,使用这些函数将定义一个“窗口化”过滤器,适用于所涉及的操作。窗口化过滤器包括

Lanczos       Hamming       Parzen
Blackman      Kaiser        Welsh
Hanning       Bartlett      Bohman

还提供了一个特殊的自窗口化过滤器 Lagrange,它将根据当前的“支持”或“叶瓣”专家设置(请参阅下文)自动调整其函数。

如果您未选择此选项的过滤器,则过滤器默认为 Mitchell(对于色彩映射图像、具有蒙板通道的图像或图像放大)。否则,过滤器默认为 Lanczos

要打印完整调整大小过滤器列表,请使用 -list filter 选项。

您可以通过使用这些专家设置来修改过滤器在缩放图像时的行为(另请参阅 -define-set):-

-define filter:blur=factor 缩放过滤器的 X 轴(及其窗口)。使用 > 1.0 表示模糊,< 1.0 表示锐利。这仅应用于高斯过滤器和类似高斯的简单过滤器,否则您可能无法获得预期结果。
-define filter:support=radius 设置过滤器支持半径。定义过滤器的大小,从而直接定义过滤重新采样过程的速度。所有过滤器都有一个默认的“首选”支持大小。某些过滤器,例如 Lagrange 和窗口化过滤器,会根据此值进行调整。对于简单过滤器,此值要么什么也不做(但会减慢重新采样),要么会以有害的方式裁剪过滤器函数。
-define filter:lobes=count 设置 Sinc/Bessel 过滤器使用的叶瓣数。这是一种指定过滤器“支持”范围的替代方法,旨在更适合窗口化过滤器,尤其是在用于图像扭曲时。
-define filter:sigma=value 定义 Gaussian 过滤器的“sigma”值。默认 sigma 值为 '0.5'。它仅影响 Gaussian,但不缩小(但可能放大)过滤器的“支持”。它可用于生成非常小的模糊,但不会由于使用较小的支持设置而导致过滤器“丢失”像素。较大的值 '0.707'(值为 '1/sqrt(2)')是另一个常见设置。
-define filter:b=b-spline_factor
-define filter:c=keys_alpha_factor 重新定义用于三次过滤器(例如 CubicCatromMitchelHermite)以及 Parzen 三次窗口函数的值。如果仅定义一个值,则另一个值设置为生成“Cubic-Keys”过滤器。这些值的含义由 Mitchell-Netravali 的研究论文定义。
-define filter:kaiser-beta=value 作为凯撒窗口函数一部分使用的“alpha”值。默认值为 '6.5'。它仅影响凯撒窗口函数,而不影响任何其他属性。在 ImageMagick v6.7.6-10 之前,此选项称为“filter:alpha”(继承自非常古老的“zoom”程序)。更改它以使函数与更现代的学术研究用法保持一致,并更好地将其指定为更明确。
-define filter:kaiser-alpha=value 此值乘以 'PI' 等效于“kaiser-beta”,并将覆盖该设置。它仅影响凯撒窗口函数,而不影响任何其他属性。
-define filter:filter=filter_function 直接使用此函数作为加权过滤器。这允许您直接将窗口函数(例如 Blackman)用作重新采样过滤器,而不是将其用作窗口函数的正常用法。如果定义了直接指定 SincJinc 作为过滤器,则也会这样做。
-define filter:window=filter_function IIR(无限脉冲响应)过滤器 SincJinc 使用给定的过滤器进行窗口化(在定义的支持范围内降至零)。这允许您指定一个用作这些 IIR 过滤器的窗口函数的过滤器函数。许多定义的过滤器实际上是这些 IIR 过滤器的窗口函数。一个典型的选择是 Box(这有效地关闭了窗口函数)。
-define filter:win-support=radius 缩放窗口函数到此大小,而不是。这会导致窗口化(或自窗口化拉格朗日过滤器)的行为方式,就像支持窗口大于实际提供给调用操作符的窗口一样。但是,过滤器仍然被裁剪到给定的实际支持大小。
-define filter:verbose=1 这会导致 IM 将有关最终内部过滤器选择的详细信息打印到标准输出。这包括有关所用过滤器设置的注释标题,以及允许轻松绘制过滤器权重的相关数据。但是,请注意,一些过滤器在内部根据其他过滤器进行定义。例如,Lanczos 过滤器根据窗口化的 SincFast 过滤器定义,而 Mitchell 定义为具有特定“B”和“C”设置的一般 Cubic 系列过滤器。

例如,要获得 8 叶瓣 jinc 窗口化 sinc 过滤器(Genseng 过滤器?):

magick image.png \
  -filter sinc \
  -set filter:window=jinc \
  -set filter:lobes=8 \
  -resize 150% image.jpg"

或者,原始未窗口化的 Sinc 过滤器,具有 4 个叶瓣:

magick image.png \
  -set filter:filter=sinc \
  -set filter:lobes=4 \
  -resize 150% image.jpg"

要提取原始窗口函数的数据,请将其与“Box”过滤器结合使用。例如,“Welch”抛物线窗口函数。

magick null: -define filter:filter=Box \
  -define filter:window=Welch \
  -define filter:support=1.0 \
  -define filter:verbose=1 \
  -resize 2 null: > window_welch.dat
gnuplot
  set grid
  plot \"window_welch.dat\" with lines

请注意,提供专家选项是为了帮助学习和理解调整大小过滤器原理的图像处理专家。如果没有此知识以及对实际过滤器定义的理解,使用专家设置更有可能对您的图像调整大小造成不利影响。

-flatten

这是一个简单地别名 -layers 方法“flatten”。

-flip

创建 镜像图像

沿垂直方向反射扫描线。图像将被镜像颠倒。

-floodfill {+-}x{+-}y color

在指定偏移量处用颜色填充图像。

漫水填充从给定的“种子点”开始,该点不受重力影响。任何与给定 color 参数颜色距离在 -fuzz 内的颜色,连接到该“种子点”将替换为当前 -fill 颜色。

请注意,如果“种子点”处的像素本身不匹配给定的 color(根据 -fuzz),则不会执行任何操作。

此运算符更像 -opaque 选项,而不是更通用的漫水填充,它直接读取“种子点”处匹配的颜色。对于这种形式的漫水填充,请查看 -draw 及其“颜色漫水填充”绘图方法。

-flop

创建 镜像图像

沿水平方向反射扫描线,就像在垂直镜子里看到的图像一样。

-font name

设置用于在图像上注释文本或创建标签的字体。

要打印完整字体列表,请使用 -list font 选项(对于 6.3.6 之前的版本,请使用“type” 而不是“font”)。

除了上述预定义列表中指定的字体之外,您还可以从特定来源指定字体。例如 Arial.ttf 是 TrueType 字体文件,ps:helvetica 是 PostScript 字体,而 x:fixed 是 X11 字体。

有关影响字体的其他设置,请参阅选项 -family-stretch-style-weight

要指定显式字体文件名或集合,请在字体路径前加上 @,例如 @arial.ttf。您可以为字体集合指定字体面索引,例如 @msgothic.ttc[1]

-foreground color

定义菜单的前景色。

颜色使用 -fill 选项中描述的格式指定。

默认前景色为黑色。

-format type

图像格式类型。

当与 mogrify 实用程序一起使用时,此选项将任何图像转换为您指定的图像 格式。要查看 ImageMagick 支持的图像格式类型列表,请使用 -list format

默认情况下,文件写入其原始名称。但是,如果文件名扩展名与支持的格式匹配,则扩展名将替换为使用 -format 指定的图像格式类型。例如,如果您将 tiff 作为格式类型指定,并且输入图像文件名是 image.gif,则输出图像文件名变为 image.tiff

-format expression

输出格式化图像特征。

有关如何指定此选项的参数的说明,请参阅 格式和打印图像属性

-frame geometry

用边框或斜角框架包围图像。

边框的颜色由 -mattecolor 命令行选项指定。

有关 geometry 参数的完整详细信息,请参阅 图像几何geometry 参数的 size 部分指示添加到图像尺寸的额外宽度和高度。如果 geometry 参数中没有给出偏移量,则添加的边框是纯色。如果存在偏移量 xy,则指定边框的宽度和高度被划分为形成厚度为 x 像素的外斜角和厚度为 y 像素的内斜角。负偏移量作为框架参数没有意义。

-frame 选项受当前 -compose 设置的影响,并假设这是使用默认的“Over”合成方法。它生成具有当前 -bordercolor 设置的合适大小的图像,然后绘制四个不同颜色接近当前 -mattecolor 的框架。然后将原始图像叠加到此图像的中心。这意味着使用默认的合成方法“Over”,任何透明部分都可能被当前 -bordercolor 设置替换。

图像合成不受 -gravity 选项的影响。

-frame

在导入的图像中包含 X 窗口框架。

-function function parameters

将函数应用于通道值。

此运算符根据给定的参数执行计算,以修改图像中先前设置的每个 -channel 的每个颜色值。有关如何处理计算结果的详细信息,请参阅 -evaluate

这可以被视为 -evaluate 运算符的多参数版本。(在 ImageMagick 6.4.8-8 中添加。)

在这里,parameters 是以逗号分隔的数值列表。值的数量取决于选择的 function。选择 function

Polynomial
Sinusoid
Arcsin
Arctan

要打印完整 -function 运算符列表,请使用 -list function。以下是描述。

多项式

Polynomial 函数接受任意数量的参数,这些参数是多项式的系数,按降幂排列。也就是说,输入

-function Polynomial an,an-1,...a1,a0

将调用由以下公式给出的多项式函数

an un + an-1 un-1 + ··· a1 u + a0,

其中u 是像素的原始归一化通道值。

Polynomial 函数可以用 Set(常数多项式)以及 AddDivideMultiplySubtract(一些线性多项式)的 -evaluate 运算符代替。 -level 运算符也线性影响通道。以下是某些对应关系。

-evaluate Set value -function Polynomial value (常数函数;当通道为 RGB 时,设置 value×100% 灰度。)
-evaluate Add value -function Polynomial 1,value
-evaluate Subtract value -function Polynomial 1,−value
-evaluate Multiply value -function Polynomial value,0
+level black% x white% -function Polynomial A,B (降低对比度。在这里,A=(white-black)/100 和 B=black/100。)

Polynomial 函数提供了极大的灵活性,因为多项式可以用于将任意连续曲线拟合到所需的任何精度。

正弦波

Sinusoid 函数可用于通过设置频率、相移、振幅和偏差来正弦地改变通道值。这些值作为一到四个参数给出,如下所示:

-function Sinusoid freq,[phase,[amp,[bias]]]

其中 phase 以度为单位。(函数的域 [0,1] 对应于 0 到 freq×360 度。)结果是,如果像素的归一化通道值最初为u,则其最终归一化值由以下公式给出:

amp * sin(2*π* (freq * u + phase / 360)) + bias

例如,以下生成一条曲线,该曲线在 0.7−.2=.5 和 0.7+.2=.9 之间振荡三次,起始和结束于 0.9(当u=0 和 1 时,分别)。

-function Sinusoid 3,-90,.2,.7

ampbias 的默认值均为 .5。 phase 的默认值为 0。

Sinusoid 函数通过允许改变振幅、相位和偏差来概括 SinCos-evaluate 运算符。对应关系如下。

-evaluate Sin freq -function Sinusoid freq,0
-evaluate Cos freq -function Sinusoid freq,90
反正弦

ArcSin 函数生成正弦波的逆曲线,可用于生成圆柱形失真和位移图。曲线可以相对于输入值和输出值范围进行调整。

-function ArcSin width,[center,[range,[bias]]]

所有值均以归一化颜色值(黑色为 0.0,白色为 1.0)给出。默认值覆盖从 0.0 到 1.0 的完整范围,用于输入 (width) 和输出 (width) 值。 '1.0,0.5,1.0,0.5'

range/π * asin( 2/width * ( u - center ) ) + bias
反正切

ArcTan 函数生成一条曲线,该曲线平滑地从无穷大处的极限值穿过中心,使用给定的斜率值。所有这些值都可以通过参数进行调整。

-function ArcTan slope,[center,[range,[bias]]]

默认为 '1.0,0.5,1.0,0.5'。

range/π * atan( slope*π * ( u - center ) ) + bias

-fuzz distance{%}

颜色在该 distance 内被认为相等。

许多算法搜索目标颜色。默认情况下,颜色必须完全匹配。使用此选项匹配与目标颜色在 RGB 空间中接近的颜色。例如,如果您想使用 -trim 自动修剪图像的边缘,但图像已扫描,目标背景颜色可能略有不同。此选项可以解决这些差异。

distance 可以是绝对强度单位,也可以是最大可能强度(255、65535 或 4294967295)的百分比,后跟 %

使用 +fuzz 将模糊值重置为 0。

-fx expression

将数学表达式应用于图像或图像通道。

如果 expression 的第一个字符是 @,则从名为字符串中其余字符的文件中读取表达式。

有关此选项的详细讨论,请参阅 FX,特殊效果图像运算符

-gamma value

伽马校正级别。

由于显示器差异,在两个不同的工作站上显示相同颜色图像可能看起来不同。使用伽马校正来调整这种颜色差异。合理的取值范围从 0.82.3。伽马小于 1.0 使图像变暗,伽马大于 1.0 使图像变亮。如果像素量子位数仅为八位(量子范围 0 到 255),则对图像伽马进行大量调整可能会导致某些图像信息丢失。

伽马根据幂律逐像素调整图像的通道值,即 pow(pixel,1/gamma) 或 pixel^(1/gamma),其中 pixel 是归一化或 0 到 1 的颜色值。例如,使用伽马值为 2 等同于取图像的平方根。

使用 +gamma value 设置图像伽马级别而不实际调整图像像素。此选项在图像已知伽马但未设置为图像属性(例如 PNG 图像)时很有用。写入“文件伽马”,它是显示伽马的倒数;例如,如果您的图像为 sRGB,并且想要写入 PNG gAMA 块,请使用

magick input.png +gamma .45455 output.png

(0.45455 是 1/2.2)

请注意,伽马调整也可以通过 -level 运算符获得。

-gaussian-blur radius
-gaussian-blur radius{xsigma}

使用高斯运算符模糊图像。

使用给定的 Sigma 值,将图像与高斯或正态分布进行卷积。公式为

gaussian distribution

sigma 值是重要的参数,它决定了实际的模糊量。

radius 仅用于确定存储计算出的高斯分布的数组的大小。它应该是整数。如果没有给出,或者设置为零,IM 将计算可为高斯分布提供有意义结果的最大可能半径。

半径越大,操作越慢。但是,半径太小,可能会导致严重的混叠效应。作为指导方针, Radius 至少应该是 Sigma 值的两倍,虽然三倍会产生更准确的结果。

这与更快的 -blur 运算符不同,因为它使用完整的二维卷积来生成相邻像素的加权平均值。

-virtual-pixel 设置将决定如何将超出图像本身的像素模糊到最终结果中。

-geometry geometry

设置图像的首选大小和位置。

有关 geometry 参数的完整详细信息,请参阅 图像几何

-gravity type

设置各种其他设置和选项的当前重力建议。

选择包括:NorthWestNorthNorthEastWestCenterEastSouthWestSouthSouthEast。使用 -list gravity 获取 ImageMagick 安装中可用的完整 -gravity 设置列表。

您选择的指示符指定文本或子图像的位置。例如,重力为 Center 强制文本居中于图像内。默认情况下,图像重力为 undefined。有关图形原语的更多详细信息,请参阅 -draw。只有 -draw 的文本原语受 -gravity 选项的影响。

-gravity 选项也与 -geometry 设置和其他接受 geometry 作为参数的设置或选项一起使用,例如 -crop 选项。

如果 -gravity 设置出现在另一个具有 geometry 参数的选项或设置之前,该偏移量通常应用于图像中 -gravity 参数建议的点。因此,在以下命令中,例如,假设文件 image.png 的尺寸为 200x100。由 -region 参数指定的偏移量为 (−40,+20)。-gravity 参数为 Center,它建议图像的中心点,即 (100,50)。偏移量 (−40,20) 应用于该点,得到 (100−40,50+20)=(60,70),因此指定的 10x10 区域位于该点。(此外,-gravity 影响区域本身,它以像素坐标 (60,70) 为中心。(有关 geometry 参数的完整详细信息,请参阅 图像几何。)

magick image.png -gravity Center -region 10x10-40+20 \
  -negate output.png

当用作 composite 的选项时,-gravity 给出图像在合成中的方向。

当用作 montage 的选项时,-gravity 给出图像在图块中的方向。默认重力为 Center

使用 +gravity 将重力恢复为默认值。

-grayscale method

将图像转换为灰度。

这将使用 -intensity 方法之一将给定图像转换为灰度图像。

例如,要将图像转换为 (线性) Rec709Luminance 灰度,请键入

magick in.png -grayscale Rec709Luminance out.png

这相当于

magick in.png -colorspace LinearGray out.png

同样,要将图像转换为 (非线性) Rec709Luma 灰度,请键入

magick in.png -grayscale Rec709Luma out.png

这相当于

magick in.png -colorspace Gray out.png

请注意,'colorspace' 强度方法无论图像的当前颜色空间如何,都会产生相同的结果。但是,'mathematical' 强度方法取决于图像当前使用的颜色空间。

虽然此操作使用 -intensity 方法,但它不使用或设置 -intensity 设置,因此不会影响可能使用该设置的其他操作。

-green-primary x,y

绿色色度主点。

-hald-clut

将 Hald 颜色查找表应用于图像。

Hald 颜色查找表是映射到 2 维的 3 维颜色立方体。使用 HALD: 前缀创建它(例如 HALD:8)。您可以对 Hald 图像应用任何颜色转换,然后使用此选项将转换应用于图像。

magick image.png hald.png -hald-clut transform.png

此选项为您提供了一种方便的方法,可以使用 Gimp 或 Photoshop 对 Hald CLUT 图像进行颜色校正,然后使用 ImageMagick 脚本将其应用于多个图像。

请注意,表示形式仅是普通 RGB 颜色空间,并且整个颜色值三元组用于表示 Hald 颜色立方体图像的插值查找。因此,此操作不受 -channel 设置的影响,也无法调整或修改图像的透明度或 alpha/matte 通道。

另请参阅 -clut,它提供单个颜色通道的颜色值替换,通常涉及更简单的灰度图像。例如:灰度到颜色替换,或通过直方图映射进行修改。

-help

打印使用说明。

-highlight-color color

在比较图像时,使用此颜色突出显示像素差异。

-hough-lines widthxheight{+threshold}

识别图像中的直线(例如 -hough-lines 9x9+195)。

使用霍夫线检测器与任何二进制边缘提取图像一起定位和绘制它找到的任何直线。

该过程累积二进制边缘图像中每个白色像素的计数,对于每个可能的方位(从 0 到 179 度的 1 度增量)和到图像中心的距离(以 1 像素增量)。它将计数存储在角度与距离的累加器矩阵中。累加器的尺寸将为 180x(对角线/2)。接下来,它会在累加器中搜索计数峰值,并将峰值的位置转换为正常 x,y 输入图像空间中的斜率和截距。该算法使用斜率/截距来查找剪辑到图像边界的端点。线条从给定的端点绘制。计数是线条长度的度量。

.

WxH 参数指定在霍夫累加器中定位峰值的滤波器大小。阈值排除计数小于阈值的值的线条。

使用 -background 指定线条将被绘制在其上的背景颜色。默认值为黑色。

使用 -fill 指定线条的颜色。默认值为黑色。

使用 -stroke-strokewidth 指定线条的粗细。默认值为黑色且无描边宽度。

可以通过使用后缀 .mvg 创建一个列出端点和计数的文本文件,用于输出图像。

使用 -define hough-lines:accumulator=true 返回累加器图像以及线条图像。

-iconGeometry geometry

指定图标几何形状。

如果几何规范中存在偏移量,则以与 -geometry 选项相同的方式处理偏移量,使用 X11 样式处理负偏移量。

有关 geometry 参数的完整详细信息,请参阅 图像几何

-iconic

在 X Windows 中以图标模式启动", 'animate', 'display

-identify

识别图像的格式和特性。

默认情况下会打印此信息

  • 图像场景编号(如果它不为零)
  • 图像名称
  • 图像格式
  • 图像尺寸
  • 虚拟页面偏移
  • 颜色深度
  • colorspace
  • 字节数的文件大小
  • 识别图像时消耗的用户时间
  • 识别图像时经过的时间

要自定义您想要识别的属性,请使用 -format

如果也指定了 -colors,则会打印图像中的唯一颜色总数和颜色缩减误差值。有关这些值的说明,请参阅 颜色缩减算法

如果 -verbose 先于此选项,则会显示大量图像属性,包括图像统计信息、配置文件、图像直方图等。

-ift

实现逆离散傅里叶变换 (DFT)。

此选项是 ImageMagick 6.5.4-3(现在在 ImageMagick 6.6.0-9 中适用于 Windows 用户)的新功能。它将频率域中的幅度和相位图像转换为正常或空间域中的单个图像。例如,请参阅 傅里叶变换离散傅里叶变换快速傅里叶变换

例如,根据用于存储 -fft 结果的图像格式,可以使用

magick fft_image.miff -ift fft_image_ift.png

magick fft_image-0.png fft_image-1.png -ift fft_image_ift.png

由于在 -fft+fft 之前原始图像未被设置为正方形或偶数维度时引入的填充,因此生成的图像可能需要裁剪。任何填充都在图像的右侧和/或底部。

使用 FFTW 代理库才能使用 -ift

使用 +ift(启用 HDRI)将频率域中的实数和虚数图像转换为正常(空间)域中的单个图像。

默认情况下,IFT 未被归一化(FFT 被归一化)。使用 "-define fourier:normalize=inverse" 明确归一化 IFT 并取消归一化 FFT。

-illuminant method

参考光源。从 ABCD50D55D65EF2F7F11 中选择。

-immutable

使图像不可变。

-implode factor

围绕中心点压缩图像像素。

-insert index

将最后一幅图像插入图像序列中。

此选项获取当前图像序列中的最后一幅图像,并将其插入给定索引处。如果使用负索引,则插入位置将在从序列中删除最后一幅图像之前计算。因此,-insert -1 将不会更改图像序列。

+insert 选项等同于 -insert -1。换句话说,将最后一幅图像插入到当前图像序列的末尾。因此,这不会影响图像序列的顺序。

-intensity method

从像素生成强度值的​​方法。

ImageMagick 提供了许多方法,用于在操作员需要为某个目的确定单个灰度值时,从具有红色、绿色和蓝色像素分量的图像中确定单个灰度值。通常使用 Rec709Luma 公式,这是将图像转换为 -colorspace gray 时使用的相同公式。

当前提供了以下公式,并且首先将像素值转换为线性 RGB 或非线性 sRGB 颜色空间,然后再应用于计算最终灰度值。

Rec601Luma
0.298839R' + 0.586811G'+ 0.114350B'
Rec601Luminance
0.298839R + 0.586811G + 0.114350B
Rec709Luma
0.212656R' + 0.715158G' + 0.072186B'
Rec709Luminance
0.212656R + 0.715158G + 0.072186B
亮度
max(R', G', B')
亮度
(min(R', G', B') + max(R', G', B')) / 2.0

请注意,以上 R,G,B 值是图像的线性 RGB 值,而 R',G',B' 是 sRGB 非线性值。

这些强度方法本质上是数学的,并且将使用图像各自 R、G、B 通道的当前值,而不管它是如何,或者图像当前使用什么颜色空间。

平均值
(R' + G' + B') / 3.0
MS
(R'^2 + G'^2 + B'^2) / 3.0
RMS
sqrt( (R'^2 + G'^2 + B'^2) / 3.0 )

这些方法通常用于其他目的,例如生成两幅彩色图像之间的灰度差分图像(使用 -compose 'Difference' 合成。)

例如,'MS'(均方)设置有利于最小化颜色误差比较。而...例如,方法 'RMS'(均方根)适用于计算颜色差分图像的颜色向量距离。这相当于 -fuzz 因子颜色比较设置的颜色部分。

另请参阅 -grayscale,它直接将上述灰度公式应用于图像,而无需设置 -intensity 设置。

-colorspace gray 图像转换也使用当前强度设置,但始终会在应用上述函数之前将图像转换为相应的 sRGB 或线性 RGB 颜色空间。

要打印可能的像素强度设置方法的完整列表,请使用 -list intensity

-intensity 设置影响的操作符包括

-adaptive-blur
-adaptive-sharpen
-black-threshold
-clut (when mapping greyscale CLUT image to alpha channel if set by -channels)
-colors for gray colorspace
-compose {LightenIntensity, DarkenIntensity, CopyOpacity, CopyBlack}
-contrast-stretch
-distort {ErodeIntensity, DilateIntensity}
-normalize
-random-threshold
-range-threshold
-selective-blur
-shade
-threshold
-tint
-white-threshold

-intent type

在管理图像颜色时使用此渲染意图。

使用此选项来影响图像的颜色管理操作(请参阅 -profile)。从以下意图中选择:Absolute, Perceptual, Relative, Saturation

sRGB 颜色空间的默认意图是 Perceptual,RGB 和灰度颜色空间的默认意图是未定义的。

要打印渲染意图的完整列表,请使用 -list intent

-interlace type

交错方案的类型。

选择以下选项

none
line
plane
partition
JPEG
GIF
PNG

此选项用于指定原始图像格式(例如 RGBYUV)的交错方案类型。

None 表示不交错(RGBRGBRGBRGBRGBRGB...),

Line 使用扫描线交错(RRR...GGG...BBB...RRR...GGG...BBB...),以及。

Plane 使用平面交错(RRRRRR...GGGGGG...BBBBBB...)。

Partition 类似于平面,只是不同的平面被保存到单独的文件中(例如 image.R、image.G 和 image.B)。

使用 LinePlane 创建一个 交错 PNGGIF渐进 JPEG 图像。

要打印交错方案的完整列表,请使用 -list interlace

-interline-spacing value

两行文字之间的间距。

-interpolate type

设置用于根据浮点或实数值查找颜色的像素颜色插值方法。

当使用非整数浮点值查找像素颜色时,您通常会落在源图像定义的像素颜色之间。此设置确定如何根据该点周围像素的颜色确定颜色。也就是说,如何确定落在两个或四个不同颜色像素之间的点的颜色。

average
周围四个像素的平均颜色
average4
周围四个像素的平均颜色
average9
周围九个像素的平均颜色
average16
周围十六个像素的平均颜色
background
 
bilinear
像素的双线性插值(默认值)
blend
 
catrom
周围 16 个像素的拟合双三次样条
integer
左上角像素的颜色(地板函数)
mesh
将区域划分为两个平坦的三角形插值
nearest-neighbor
查找点最近的像素(四舍五入函数)
spline
直接样条曲线(颜色模糊)

这对于诸如 -distort-implode-transform-fx 之类的失真运算符非常重要。

要打印插值方法的完整列表,请使用 -list interpolate

另请参阅 -virtual-pixel,以控制图像边界之外位置的查找。

-interpolative-resize geometry

使用插值进行缩放。请参阅 -interpolate 设置。

-interword-spacing value

两个单词之间的间距。

-integral

计算图像中值的总和(像素值)。

-kerning value

两个字母之间的间距。

-kmeans colors{xiterations}{+tolerance}

K均值(迭代)颜色减少(例如 -kmeans 5x300+0.0001)。Colors 是所需的颜色数量。初始颜色使用颜色量化找到。Iterations 是停止迭代次数(默认值为 300)。收敛是迭代之间颜色变化的停止阈值(默认值为 0.0001)。如果达到迭代次数或容差,则处理结束。使用 -define kmeans:seed-colors=color-list 初始化颜色,其中 color-list 是以分号分隔的颜色列表(例如 -define kmeans:seed-colors="red;sRGB(19,167,254);#00ffff)。颜色列表会覆盖颜色量化。非空颜色列表会覆盖颜色数量。未分配的任何初始颜色都将从图像中分配随机颜色。

-kuwahara radius
-kuwahara radius{xsigma}

边缘保留降噪滤波器。

radiussigma 更重要。如果 sigma 被省略,它将根据 radius 自动计算为 sigma=radius-0.5。该 sigma 提供了一些额外的平滑控制。

-label name

为图像分配标签。

使用此选项将特定标签分配给图像,因为它被读取或创建。您可以使用 -set 操作重新分配已读取图像的标签。诸如 TIFF、PNG、MIFF 等图像格式支持将标签信息与图像一起保存。

将图像保存到 PostScript 文件时,分配给图像的任何标签都用作打印在 PostScript 图像上方的标题字符串。

您可以通过嵌入特殊格式字符来包含图像文件名、类型、宽度、高度或其他图像属性。有关百分比转义码的详细信息,请参阅 格式化和打印图像属性

例如,

-label "%m:%f %wx%h"  bird.miff

将图像标签分配为 MIFF:bird.miff 512x480 到 "bird.miff" 图像,其宽度为 512,高度为 480,因为它被读取。如果使用了 +label 选项,则将使用图像中存在的任何现有标签。您可以通过分配空字符串来删除图像的所有标签。

标签不会绘制在图像上,而是通过 Label 标签或类似机制嵌入到图像数据流中。如果您希望标签在图像本身可见,请使用 -draw 选项,或在创建图像蒙太奇的最终处理过程中。

如果 string 的第一个字符是 @,则从名为 string 中剩余字符的文件读取图像标签。文件中的标签是文字的,不会识别嵌入的格式字符。

-lat width
-lat widthxheight{+-}offset{%}

执行局部自适应阈值。

根据周围窗口中像素的值自适应地阈值化每个像素。如果当前像素比此平均值加上可选的 offset 亮,则将其变为白色,否则将其变为黑色。如果 offset 为正,则可以忽略扫描文档中发现的像素值的微小变化。负 offset 将使它对这些微小变化更加敏感。

这通常用于阈值化具有不均匀背景的图像。它基于以下假设:小窗口的平均颜色是局部背景颜色,从中分离前景颜色。

-layers method

处理形成图像图层或动画帧集的多张图像。

对有序图像序列执行各种图像操作方法,这些图像序列可以表示叠加的“图像图层”集、GIF 处置动画或完全“合并”的动画序列。

方法 描述
compare-any 将第二帧及以后的帧裁剪到包含两幅图像之间所有差异的最小矩形。不考虑 GIF -dispose 方法。
这与 -deconstruct 运算符完全相同,并且不会保留动画的正常工作,尤其是在动画使用图层处置方法(例如“Previous”或“Background”)时。
compare-clear 与“compare-any”相同,但裁剪到第二帧中变为透明的所有不透明像素的边界。这是掩盖或擦除下一帧像素所需的最小图像。
compare-overlay 与“compare-any”相同,但裁剪到为下一幅图像添加额外颜色的像素,这是由于叠加颜色像素的结果。这是添加或更改颜色的最小单层叠加图像。
这可以与 -compose alpha 合成方法“change-mask”一起使用,将图像减少到只需要叠加的像素。
coalesce 等同于对 -coalesce 运算符的调用。应用当前图像序列中设置的图层处置方法以形成完全定义的动画序列,就像它应该显示的那样。有效地将 GIF 动画转换为类似“胶片条”的动画。
composite 两个图像列表的 Alpha 合成,由“null:”图像分隔,目标图像列表在前,源图像在后。每个列表中的一幅图像组合在一起,直到一个列表结束。分隔图像和源图像列表将被删除。
根据 -gravity 调整 -geometry 偏移量,以符合第一幅图像的虚拟画布大小。与正常 -composite 操作不同,画布偏移量也添加到每个图像的最终合成定位中。
如果其中一个图像列表仅包含一个图像,则该图像将应用于另一个图像列表中的所有图像,而不管它是哪个列表。在这种情况下,保留的是列表的图像元数据。
dispose 这就像“coalesce”一样,但显示了应用图层处置方法后的动画外观,在下一副子帧图像叠加之前。这是应用 GIF -dispose 方法的结果“处置”图像。这允许您检查可能正在开发的特定动画出现问题的地方。
flatten 使用当前 -background 颜色创建一个大小与第一幅图像虚拟画布相同的画布,并依次将每个图像 -compose 到该画布上。超出画布的图像将被裁剪。最终图像将具有零虚拟画布偏移量。
这通常用作最终的“图像分层”操作,将所有准备好的图像图层叠加到最终图像中。
对于单个图像,此方法还可以使用真实像素填充虚拟画布,或叠加不透明颜色以去除图像的透明度。
merge 与“flatten”方法相同,但合并所有给定图像图层以创建一个新的图层图像,该图像大小足以容纳所有图像,而不会裁剪或额外空间。新图像的虚拟偏移量将保留新图层的定位,即使此偏移量为负。保留第一幅图像的虚拟画布大小。
在处理具有负偏移量的图像图层时,请注意谨慎,因为很少有图像文件格式正确处理它们。将此操作方法与 +repage 结合使用将删除图层偏移量,并创建一幅图像,其中所有叠加图像相对于彼此的定位都保留,尽管不一定与您指定的位置完全相同。
另请参阅“trim-bounds”以下,它与之密切相关,但没有执行“flatten”以合并图像。
mosaic 与“flatten”方法相同,但仅在正方向上扩展第一幅图像的初始画布大小,以容纳所有图像图层。但是,由于虚拟画布“锁定”到原点,因此根据其定义,具有负偏移量的图像图层仍将被顶部和左侧边缘裁剪。如果这可能是一个问题,请参阅“merge”或“trim-bounds”。
此方法通常用于使用各种偏移量布局单个图像,但不知道最终画布大小。生成的图像将与“flatten”一样没有虚拟偏移量,因此可以保存到任何图像文件格式。
optimize 优化合并动画,将其转换为 GIF 动画,使用多种通用技术。这目前是应用“optimize-frame”和“optimize-transparency”两种方法的捷径,但可能会扩展以包含在开发过程中出现的其他优化方法。
optimize-frame 通过尽可能减少每帧的像素数量来优化合并动画,转换为 GIF 动画,通过尝试选择最佳图层处置方法来使用,同时确保结果将继续正常动画。
不能保证找到最佳优化。但是,没有合理快速的 GIF 优化算法可以做到这一点。但是,这似乎比大多数其他 GIF 帧优化器做得更好。
optimize-plus 如同 'optimize-frame' 一样,但试图通过在动画中添加额外的帧来改进整体优化,而不会改变动画的最终外观或时间安排。添加帧是为了尝试将清除像素与一个动画帧到下一个动画帧的叠加新像素分离。如果这不能改进优化(仅针对下一帧),它将回退到之前普通 'optimize-frame' 技术的结果。
处置样式的变化可能会导致后期帧的优化恶化,但这不太可能。换句话说,不能保证它比普通 'optimize-frame' 技术更好。但是,对于某些动画,您可以获得最终动画尺寸的巨大改进。
optimize-transparency 给定一个 GIF 动画,如果子帧叠加图像中的任何像素不会改变最终动画超过当前 -fuzz 因素,则将其替换为透明度。
这应该允许现有的帧优化 GIF 动画压缩成更小的文件大小,因为它具有更大的单一(透明)颜色区域,而不是重复当前处置的最后帧的多种颜色的模式。
remove-dups 删除(并合并时间延迟)连续重复的图像,以简化合并动画的图层叠加。
通常这是由于在整个动画中使用恒定时间延迟,或者在将较大动画拆分为较小的子动画后导致的。重复帧也可能用作某些帧优化方法的一部分。
remove-zero 删除任何时间延迟为零的图像,除非所有图像的时间延迟都为零(并且不是一个正确的时间动画,则发出警告)。
在 GIF 动画中,此类图像通常是提供用户实际显示的帧之间部分中间更新的帧。这些帧通常是为了改进 GIF 动画中的帧优化而添加的。
trim-bounds 找到当前图像序列中所有图像的边界,然后调整偏移量,以便所有图像都包含在最小正画布上。不会修改或合并任何图像数据,只会修改单个图像虚拟画布大小和偏移量。所有图像都具有相同的大小,并且将具有正偏移量,但相对于彼此的位置将保持不变。由于最小画布大小,至少有一张图像将接触该画布的每个边缘。但是,接触这些边缘的图像数据可能为透明。
结果非常类似于使用 'merge' 后跟 +repage 选项,不同之处在于所有图像都保持分离。如果在使用 'trim-bounds' 后使用 'flatten',则会得到相同的结果。

要打印图层类型的完整列表,请使用 -list layers

运算符 -coalesce-deconstruct-flatten-mosaic 只是上述方法的别名,将来可能会被弃用。另请参阅 -page-repage 运算符、-compose 设置以及 GIF -dispose-delay 设置。

-level black_point{,white_point}{%}{,gamma}

调整图像通道的级别。

给定一个、两个或三个用逗号分隔的值:黑点、白点、伽马(例如:10,250,1.0 或 2%,98%,0.5)。黑点和白点范围从 0 到 QuantumRange,或从 0 到 100%;如果省略白点,则将其设置为 (QuantumRange - black_point),以便对对比度更改进行居中。如果字符串中存在 % 符号,则黑点和白点都是全颜色范围的百分比。伽马将对值进行 -gamma 调整。如果省略它,则假定默认值为 1.0(不进行伽马校正)。

在正常使用 (-level) 中,会拉伸图像值,以便原始图像中的给定 'black_point' 值设置为零(或黑色),而给定的 'white_point' 值设置为 QuantumRange(或白色)。这为您提供了对图像的直接对比度调整。然后将调整结果图像的 'gamma'。

从 ImageMagick v6.4.1-9 开始,使用运算符的加号形式 (+level) 或在参数列表中添加任何特殊 '!' 标志,将导致运算符执行级别调整的反向操作。也就是说,原始图像中的零或 QuantumRange 值(黑色和白色)将调整为给定的级别值,允许您降低对比度或压缩图像中的通道值。在进行降低对比度调整之前,会调整 'gamma'。

仅调整由当前 -channel 设置定义的通道(默认为仅 RGB 颜色通道),允许您限制此运算符的效果。

请注意,透明度通道被视为“蒙板”值(0 为不透明),而不是“alpha”值(0 为透明)。

-level-colors {black_color}{,}{white_color}

使用提供的破折号分隔颜色调整图像的级别。

此函数与 -level 完全相同,只是每个颜色通道的值由给定的 'black_color' 和 'white_color' 颜色确定(如 -fill 选项下所述)。

这有效地意味着提供给 -level-colors 的颜色被映射为分别成为“黑色”和“白色”,所有其他颜色都线性调整(或裁剪)以匹配该更改。每个通道使用指定颜色的通道值单独调整。

另一方面,运算符的加号形式 (+level-colors) 将图像颜色“黑色”和“白色”分别映射到给定的颜色,从而导致图像呈现到这些颜色的渐变(降低对比度)色调。这也可以用来将纯灰度图像转换为使用指定颜色的渐变的图像。

通过在颜色之前或之后提供一个逗号分隔符,将分别替换“黑色”或“白色”点。但是,如果没有提供逗号分隔符,则给定的颜色将用于“黑色”和“白色”颜色点,从而使运算符要么围绕该颜色阈值图像 (-形式),要么将所有颜色设置为该颜色 (+形式)。

-limit type value

设置像素缓存资源限制。

选择以下选项:widthheightareamemorymapdiskfilethreadthrottletime

对于 file,值以文件数量表示。其他限制以字节表示。使用 SI 前缀 (例如 100MB) 定义内存、映射、区域和磁盘资源限制的论据。

默认情况下,限制为 768 个文件、3GB 的图像区域、1.5GiB 内存、3GiB 内存映射和 18.45EB 的磁盘。如果可用,这些限制会根据计算机上的可用资源进行调整。当达到任何限制时,ImageMagick 会以某种方式失败,但会尝试采取补偿措施(如果可能)。例如,以下限制内存

-limit memory 32MiB -limit map 64MiB

使用 -list resource 列出当前限制。例如,我们的系统显示这些限制

-> identify -list resource
Resource limits:
  Width: 100MP
  Height: 100MP
  Area: 25.181GB
  Memory: 11.726GiB
  Map: 23.452GiB
  Disk: unlimited
  File: 768
  Thread: 12
  Throttle: 0
  Time: unlimited

为了保持中间图像的像素存储,对像素存储请求进行以下三种资源类别之一的满足:内存池、内存映射文件池和磁盘池(按此顺序),具体取决于 -limit 设置以及系统是否支持资源请求。如果给定池中分配的像素存储的总大小达到相应的限制,则请求将传递到下一个池。此外,超出 area 限制的请求会自动分配到磁盘。

为了说明 ImageMagick 如何利用资源限制,请考虑典型的图像资源请求。首先,ImageMagick 尝试在内存中分配像素。如果资源请求超出 memory 限制或系统不支持该请求,则该请求可能会被拒绝。如果内存请求不被接受,则像素会分配到磁盘,并且该文件会进行内存映射。但是,如果分配请求超出 map 限制,则资源分配会转到磁盘。在所有情况下,如果资源请求超出 area 限制,像素会自动缓存到磁盘。如果磁盘有硬限制,则程序会失败。

在大多数情况下,您无需关心资源限制。ImageMagick 会选择合理的默认值,并且大多数图像不会占用计算机资源。限制在您处理大型图像或在共享系统上时很有用,在这种情况下,ImageMagick 可以消耗所有或大部分可用内存。在这种情况下,ImageMagick 工作流程会减慢其他进程,或者在极端情况下会使系统停止。在这种情况下,设置限制可以确保 ImageMagick 工作流程不会干扰计算机的其他并发使用。例如,假设您有一个处理从互联网上传的图像的 Web 接口。要确保 ImageMagick 不超过 10MiB 内存,您可以简单地将区域限制设置为 10MiB

-limit area 10MB

现在,无论何时处理大型图像,像素都会自动缓存到磁盘,而不是内存。当然,这暗示着大型图像通常处理速度非常慢,仅仅是因为内存中的像素处理速度比磁盘快一个数量级。由于您的网站用户可能会不小心上传一个巨大的图像进行处理,因此您还应设置磁盘限制。

-limit area 10MB -limit disk 500MB

在这里,如果图像需要超过 500MB 的磁盘存储空间,ImageMagick 就会停止处理。

除了命令行资源限制选项之外,还可以使用 环境变量 设置资源。设置环境变量 MAGICK_AREA_LIMITMAGICK_DISK_LIMITMAGICK_FILE_LIMITMAGICK_MEMORY_LIMITMAGICK_MAP_LIMITMAGICK_THREAD_LIMITMAGICK_TIME_LIMIT 分别用于图像区域、磁盘空间、打开文件、堆内存、内存映射、执行线程数和最大持续时间(以秒为单位)的限制。

请注意,您可以相对于任何 安全策略 限制限制,但不能放松它们。

好奇的用户可以尝试将 -debug cache 添加到他们的命令,然后仔细检查生成的输出以查找像素缓存的引用,以便确定像素缓存是如何分配的以及资源是如何消耗的。高级 Linux/Linux 用户可以使用 grep memory|open|destroy|disk 将输出管道化以获得更易于阅读的筛选。

有关 ImageMagick 使用资源的更多信息,请参阅 架构 页面上的 **缓存存储和资源需求** 部分。

-linear-stretch black-point
-linear-stretch black-point{xwhite-point}{%}

线性饱和度拉伸。

这与 -contrast-stretch 非常相似,并使用“直方图箱”来确定需要拉伸的颜色值范围。然后它使用 -level 运算符拉伸这些颜色。

因此,虽然初始确定可能具有“分箱”舍入效应,但图像颜色是通过数学方法拉伸的,而不是使用直方图箱。这使得运算符更准确。

但是请注意,'0' 的 -linear-stretch 不起作用,而 '1' 值对颜色范围进行了接近完美的拉伸。

另请参阅 -auto-level 以获得数学图像的“完美”归一化。

此运算符正在审核重新开发。

-linewidth

后续绘图操作的线条宽度。

-liquid-rescale geometry

使用缝合裁剪重新缩放图像。

有关 geometry 参数的完整详细信息,请参阅 图像几何

-list type

打印各种选项或设置的支持参数列表。从这些列表类型中选择


Align
Alpha
Boolean
Cache
Channel
Class
ClipPath
Coder
Color
Colorspace
Command
Complex
Compose
Compress
Configure
DataType
Debug
Decoration
Delegate
Direction
Dispose
Distort
Dither
Endian
Evaluate
FillRule
Filter
Font
Format
Function
Gravity
Intensity
Intent
Interlace
Interpolate
Kernel
Layers
LineCap
LineJoin
List
Locale
LogEvent
Log
Magic
Method
Metric
Mime
Mode
Morphology
Module
Noise
Orientation
PixelIntensity
Policy
PolicyDomain
PolicyRights
Preview
Primitive
QuantumFormat
Resource
SparseColor
Statistic
Storage
Stretch
Style
Threshold
Type
Units
Validate
VirtualPixel

这些列表因 ImageMagick 版本而异。使用 "-list list" 获取所有可用 "-list" 参数的完整列表。

magick identify -list list

-log string

指定调试日志的格式。

此选项指定在 -debug 选项处于活动状态时打印的日志的格式。

您可以通过嵌入特殊格式字符来显示以下组件

%d
%e
事件
%f
function
%l
线
%m
模块
%p
进程 ID
%r
实际 CPU 时间
%t
墙上时钟时间
%u
用户 CPU 时间
%%
%
\n
换行符
\r
回车符

例如

magick -debug coder -log "%u %m:%l %e" in.gif out.png

默认行为是打印所有组件。

-loop iterations

将 Netscape 循环扩展添加到您的 GIF 动画。

将迭代次数设置为零以无限次重复动画,否则动画最多重复 iterations 次。

-lowlight-color color

在比较图像时,使用此颜色淡化像素差异。

-magnify

使用像素艺术缩放将图像大小加倍或三倍。使用 -define magnify:method=method 指定替代缩放方法。从以下方法中选择:eagle2X, eagle3X, eagle3XB, epb2X, fish2X, hq2X, scale2X, scale3X, xbr2X。默认值是 scale2X。

-map type

使用此 type 显示图像。

从这些 标准调色板 类型中选择

best
default
gray
red
green
blue

您的 X 服务器 必须支持您选择的 标准调色板,否则会发生错误。使用 list 作为类型,display从上到下 的顺序搜索调色板类型列表,直到找到一个为止。有关创建标准调色板的一种方法,请参阅 xstdcmap(1)

-map components

像素映射。

以下是映射的有效组件

r
红色像素分量
g
绿色像素分量
b
蓝色像素分量
a
alpha 像素分量 (0 为透明)
o
不透明度像素分量 (0 为不透明)
i
灰度强度像素分量
c
青色像素分量
m
品红色像素分量
y
黄色像素分量
k
黑色像素分量
p
填充组件 (始终为 0)

您可以按任何顺序指定任意数量的这些组件 (例如 bgr)。组件也可以重复 (例如 rgbr)。

-mattecolor color

指定用于 -frame 选项的颜色。

颜色使用 -fill 选项中描述的格式指定。

默认蒙版颜色为 #BDBDBD这种灰色调

-maximum

返回图像序列的最大强度。

从所有周围像素中选择“最大”值。

这是来自同名 方法 的旧版选项。

-median geometry

对图像应用中值滤波。

从所有周围像素中选择“中间”值。

这是来自同名 方法 的旧版选项。

-mean-shift widthxheight{+distance{%}

图像降噪和颜色减少/分割 (例如 -mean-shift 7x7+10%)。

widthxheight 是窗口大小,distance 是以 0 到 1 或 0 到 100% 的范围测量的颜色距离。

均值漂移算法是迭代的,因此窗口大小越大,速度越慢。对于每个像素,它获取以像素为中心的窗口中的所有像素,并排除那些超出 radius=sqrt((width-1)(height-1)/4) 的像素。从这些像素中,它找到哪些像素在指定平方颜色距离内与当前均值相近。然后,它从这些坐标计算一个新的 x,y 重心和一个新的均值。这个新的 x,y 重心用作新窗口的中心。这个过程迭代直到收敛,然后最终均值用来替换原始像素值。它对下一个像素重复此过程,依此类推,直到处理完图像中的所有像素。使用其他颜色空间而不是 RGB 时,结果会更好。推荐 YIQ、YUV 或 YCbCr,它们似乎会给出等效的结果。

-metric type

根据给定的 type 度量标准,将图像差异度量输出到 STDERR。

选择以下选项

AE
绝对误差计数,不同像素的数量 (-fuzz 影响)
DSSIM
结构差异指数
FUZZ
平均颜色距离
MAE
平均绝对误差 (归一化),平均通道误差距离
MEPP
每像素平均误差 (归一化平均误差,归一化峰值误差)
MSE
平均误差平方,通道误差平方的平均值
NCC
归一化互相关
PAE
峰值绝对 (归一化峰值绝对)
PHASH
sRGB 和 HCLp 颜色空间的感知散列。使用 -define phash:colorspaces=colorspace,colorspace,... 指定替代颜色空间
PSNR
峰值信噪比
RMSE
均方根 (归一化均方根)
SSIM
结构相似性指数

使用 -fuzz 因子控制 'AE' 或不同像素的绝对计数 (忽略仅发生少量变化的像素)。使用 'PAE' 找到使所有像素“相似”所需的 -fuzz 因子,而 'MAE' 确定使大约一半像素相似的因子。

MEPP 度量标准从单个比较运行中返回三个不同的度量标准 ('MAE', 归一化 'MAE' 和归一化 'PAE')。

SSIMDSSIM 度量标准尊重以下定义:-define compare:ssim-radius-define compare:ssim-sigma-define compare:ssim-k1-define compare:ssim-k2

要打印完整度量列表,请使用 -list metric 选项。

-minimum

返回图像序列的最小强度。

从所有周围像素中选择“最小”值。

这是来自同名 方法 的旧版选项。

-mode geometry

使每个像素成为邻域的“主要颜色”。'

-mode value

操作模式。

从这些 value 中选择样式:Frame, Unframe, or Concatenate

使用 -list 选项和 'Mode' 参数获取 ImageMagick 安装中可用的 -mode 参数列表。

-modulate brightness[,saturation,hue]

改变图像的 brightnesssaturationhue

参数以变化百分比给出。值为 100 表示没有变化,任何缺失的值都将被视为 100。

brightness 是图像整体亮度的乘数,因此 0 表示纯黑,50 是原来的一半亮度,200 是原来两倍亮度。要反转其含义,请在前后 -negate 图像。

saturation 控制图像中的颜色量。例如,0 生成灰度图像,而较大的值,例如 200,生成非常彩色、“卡通化”的颜色。

hue 参数通过指定量对图像中的颜色进行“旋转”。例如,50 会导致逆时针旋转 90 度,将红色阴影映射到紫色,依此类推。值为 0 或 200 会导致图像完全旋转 180 度。使用 300 的值是 360 度旋转,这不会更改原始图像。

例如,要将颜色亮度增加 20% 并将颜色饱和度降低 10% 且保持色调不变,请使用 -modulate 120,90

使用 -set 属性 'option:modulate:colorspace' 指定要调制的颜色空间。从 HCLHCLpHSBHSIHSL (默认)、HSVHWBLCH (LCHab) 中选择。例如,

magick image.png -set option:modulate:colorspace hsb -modulate 120,90 modulate.png

-moments

报告图像矩和感知散列。

-monitor

监控进度。

-monochrome

将图像转换为黑白。

-morph frames

变形图像序列。

线性插值图像像素和大小以给出从一个图像到下一个图像的变形的视觉效果,跨越当前图像列表中的所有图像。添加的图像相当于 -blend 组合。该 frames 参数确定在每个图像之间插值多少个图像。

-morphology

-morphology method kernel

对图像应用形态学方法。

请参阅 IM 使用示例,形态学

-mosaic

一个简单的别名,用于 -layers 方法“mosaic”

-motion-blur radius
-motion-blur radius{xsigma}+angle

模拟运动模糊。

使用给定的半径、标准差 (sigma) 和角度模糊。给定的角度是图像模糊的方向。这是人们认为物体来自的方向。

请注意,模糊不是均匀分布的,这给运动赋予了明确的运动方向。

-virtual-pixel 设置将决定如何将超出图像本身的像素模糊到最终结果中。

-name

命名图像。

-negate

用其互补颜色替换每个像素。

图像的红、绿和蓝强度被取反。白色变为黑色,黄色变为蓝色,依此类推。使用 +negate 仅取反图像的灰度像素。

-noise geometry
+noise type

在图像中添加或减少噪声。

噪声峰值消除滤波器的主要功能是平滑图像中的对象,而不会丢失边缘信息,也不会创建不必要的结构。算法的核心思想是,如果发现像素是噪声,则用像素窗口中值的下一个相邻像素替换像素。像素仅当且仅当该像素在像素窗口内是最大值或最小值时才被定义为噪声。

使用 -noise radius 指定减少噪声时邻域的宽度。这相当于使用 -statistic NonPeak 操作,应优先使用。

使用 +noise 后跟噪声 type 将噪声添加到图像。从这些噪声类型中选择

Gaussian
Impulse
Laplacian
Multiplicative
Poisson
Random
Uniform

添加的噪声量可以通过 -attenuate 设置来控制。如果未设置,则值为 1.0,或最大噪声添加。

请注意,Random 将用噪声替换图像,而不是将噪声添加到图像。如果您希望将随机噪声添加到图像,请使用 Uniform。

要打印完整噪声列表,请使用 -list noise 选项。

另请参阅 -evaluate 噪声函数,它允许使用控制值来指定应添加到图像的噪声量。

-normalize

通过拉伸强度值范围来增加图像对比度。

强度值被拉伸到覆盖所有可能的取值范围。在这样做时,最多会使 2% 的像素变黑,最多会使 1% 的像素变白。

请注意,截至 ImageMagick 6.4.7-0,-normalize 等同于 -contrast-stretch 2%x1%。 (在此版本之前,它等同于 -contrast-stretch 2%x99%)。

所有通道都按相同数量进行归一化,以保持颜色完整性,当使用默认 +channel 设置时。指定任何其他 -channel 设置将独立地归一化 RGB 通道。

有关更多详细信息,请参阅 -contrast-stretch。另请参阅 -auto-level,它是一种“完美”的归一化方法,更适合数学生成的图像。

此运算符正在审核重新开发。

-opaque color

将此颜色更改为图像中的填充颜色。

color 参数使用 -fill 选项下描述的格式定义。可以使用 -fuzz 设置来匹配和替换与给定颜色相似的颜色。

使用 +opaque 来绘制与目标颜色不匹配的任何像素。

-transparent 运算符与 -opaque 完全相同,但将匹配的颜色替换为透明度而不是当前的 -fill 颜色设置。为了确保它可以做到这一点,它还确保图像启用了 alpha 通道,如同 "-alpha set",对于新的透明颜色,并且不需要您修改 -channel 来启用 alpha 通道处理。

-ordered-dither threshold_map{,level...}

使用预定义的有序色斑 threshold map 对图像进行色斑处理,并使用给定数量的 levels 每个颜色通道的均匀颜色映射。

您可以选择这些标准阈值映射


threshold   1x1   Threshold 1x1 (non-dither)
checks      2x1   Checkerboard 2x1 (dither)
o2x2        2x2   Ordered 2x2 (dispersed)
o3x3        3x3   Ordered 3x3 (dispersed)
o4x4        4x4   Ordered 4x4 (dispersed)
o8x8        8x8   Ordered 8x8 (dispersed)
h4x4a       4x1   Halftone 4x4 (angled)
h6x6a       6x1   Halftone 6x6 (angled)
h8x8a       8x1   Halftone 8x8 (angled)
h4x4o             Halftone 4x4 (orthogonal)
h6x6o             Halftone 6x6 (orthogonal)
h8x8o             Halftone 8x8 (orthogonal)
h16x16o           Halftone 16x16 (orthogonal)
c5x5b       c5x5  Circles 5x5 (black)
c5x5w             Circles 5x5 (white)
c6x6b       c6x6  Circles 6x6 (black)
c6x6w             Circles 6x6 (white)
c7x7b       c7x7  Circles 7x7 (black)
c7x7w             Circles 7x7 (white)

threshold 生成了图像的简单 50% 阈值。这可以与 level 一起使用来执行等效的 -posterize 以将图像减少到基本原色。

checks 模式生成 3 级棋盘格色斑模式。也就是说,灰度图将变成实心黑色、实心白色和中间色调的模式,形成棋盘格图案的黑色和白色。

您可以为有序色斑处理和半色调处理您的图像定义自己的 threshold map,在个人或系统 thresholds.xml XML 文件中。有关配置文件的更多详细信息,请参阅 资源

要打印已定义的所有阈值的完整列表,请使用 -list threshold 选项。

请注意,目前对所有颜色通道使用相同的阈值色斑映射,没有尝试为不同通道偏移或旋转映射以创建偏移印刷效果。此外,由于映射是简单的阈值级别,因此半色调和圆形映射将在彩色区域的边缘创建不完整的圆圈。此外,所有效果都是纯粹的开/关布尔效果,没有抗锯齿来使圆圈看起来平滑。通过创建后进行少量模糊可以使大点看起来更好。

-orient image orientation

指定数字相机图像的方向。

请注意,这是一个设置。这仅仅设置了方向元数据,并没有更改图像。

以下是允许的方向以及重新定向图像的 EXIF 代码和描述

未定义
no tag: 未定义
左上角
1: 什么也不做
右上角
2: 水平翻转
右下角
3: 旋转 180 度
左下角
4: 垂直翻转
左上角
5: 旋转 90 度并水平翻转(转置)
右上角
6: 旋转 90 度
右下角
7: 旋转 90 度并垂直翻转(横向)
左下角
8: 旋转 270 度

要打印方向的完整列表,请使用 -list orientation 选项。

-page geometry
-page media[offset][{^!<>}]
+page

设置图像在更大的虚拟画布上的大小和位置。

有关 geometry 参数的完整详细信息,请参阅 图像几何

为了方便起见,您可以使用 media 指定页面大小(请参见下文)。然后可以像使用其他 geometry 参数一样添加偏移量(例如,-page Letter+43+43)。

使用 media 作为简写来指定 PostScript 页面在点/英寸或 TEXT 页面在像素中的尺寸(widthxheight)。纸张尺寸的选择包括:4x65x77x98x109x119x1210x1310x1411x174A02A0a0a1a2a3a4a4smalla5a6a7a8a9a10archaarchbarchCarchdarcheb0b1b10b2b3b4b5b6b7b8b9c0c1c2c3c4c5c6c7csheetdsheetesheetexecutiveflsaflsefoliohalfletterisob0isob1isob10isob2isob3isob4isob5isob6isob7isob8isob9jisb0jisb1jisb2jisb3jisb4jisb5jisb6ledgerlegalletterlettersmallmonarchquartostatementtabloid。要确定 72DPI 处的相应像素尺寸,请使用以下命令,例如

magick xc: -format "%[papersize:a4]" info:

此选项还用于在写入支持偏移量的多图像格式(如 GIF89 和 MNG)时放置子图像。当用于此目的时,偏移量始终从画布的左上角测量,不受 -gravity 选项的影响。要定位 GIF 或 MNG 图像,请使用 -page{+-}x{+-}y (例如 -page +100+200)。当写入 MNG 文件时,出现在序列中第一个图像之前的 -page 选项(宽度和高度不为零)定义写入 MHDR 块的宽度和高度值。否则,MNG 宽度和高度是从包含序列中所有图像的边界框计算出来的。当写入 GIF89 文件时,仅使用边界框方法来确定其尺寸。

对于 PostScript 页面,图像的大小与 -geometry 中相同,但相对于页面的左下角通过 {+-}xoffset{+-}y offset 定位。例如,使用 -page 612x792 将图像居中于页面内。如果图像大小超过 PostScript 页面,则将其缩小以适合页面。-page 选项的默认重力为 NorthWest,即正 xy offset 从页面的左上角向右和向下测量,除非 -gravity 选项存在且值不同于 NorthWest

TEXT 图像的默认页面尺寸为 612x792。

此选项与 -density 一起使用。

使用 +page 删除图像的页面设置。

要打印页面大小的完整列表,请使用 -list pagesize 选项。

-paint radius

模拟油画。

每个像素都被替换为圆形邻域中最频繁的颜色,其宽度由 radius 指定。

-path path

将图像写入磁盘上的此路径。

-pause seconds

动画循环之间暂停

在重复动画之前暂停指定秒数。

-pause seconds

快照之间暂停。

在拍摄下一个快照之前暂停指定秒数。

-perceptible epsilon

将值小于 |epsilon| 的每个像素设置为 -epsilonepsilon(距离较近的哪个),否则像素值保持不变。

-ping

有效地确定这些图像特征:图像编号、文件名、图像的宽度和高度、图像是否为颜色映射、图像中的颜色数、图像中的字节数、图像的格式(JPEG、PNM 等)。使用 +ping 可确保准确的图像属性。

-pointsize value

PostScript、OPTION1 或 TrueType 字体的大小。

-polaroid angle

模拟宝丽来照片。

使用 +polaroid 以 -15 到 +15 度之间的随机角度旋转图像。

-poly "wt,exp ..."

根据多项式的加权和组合多个图像;每个图像的一个浮点权重(系数)和一个浮点多项式指数(幂),表示为逗号分隔的配对。

权重通常应为 -1 到 1 之间的分数。但权重的总和应为 1 或至少介于 0 和 1 之间,以避免在非 HDR 模式下在黑色和白色处进行钳位。

指数可以是正数、负数或零。负指数相当于 1 除以图像的相应正指数。零指数始终产生由量子范围缩放为白色的 1,即 wt*white,无论图像是什么。

格式为:output = wt1*image1^exp1 + wt2*image2^exp2 ...

一些简单的用法是

  • 每个图像的加权和,所有权重之和为 1,所有指数 = 1。如果所有权重都等于 1/(图像数量),那么这相当于 -evaluate-sequence mean
  • 两个或多个图像的平方和,前提是权重相等(并且总和为 1 以避免钳位),指数等于 2。

请注意,可以简单地通过使用 xc:somecolor 作为图像之一并指定所需的权重和等于 0 的指数来将常数颜色添加到表达式中。

同样,可以简单地通过使用 null:(或 xc:white)作为图像之一,并指定适当的权重和等于 0 的指数来将白色添加到表达式中。

-posterize levels

将每个通道的图像减少到有限数量的颜色级别。

较低的 levels 值(例如 2、3、4)会产生最明显的视觉效果。

-precision value

设置要打印的最大有效数字数。

-preview type

图像预览类型。

使用此选项来影响图像的预览操作(例如,magick file.png -preview Gamma Preview:gamma.png)。从这些预览中选择


AddNoise
Blur
Brightness
Charcoal
Despeckle
Dull
EdgeDetect
Gamma
Grayscale
Hue
Implode
JPEG
OilPaint
Quantize
Raise
ReduceNoise
Roll
Rotate
Saturation
Segment
Shade
Sharpen
Shear
Solarize
Spiff
Spread
Swirl
Threshold
Wave

要打印预览的完整列表,请使用 -list preview 选项。

默认预览是 JPEG

-print string

解释字符串并打印到控制台。

-process command

使用自定义图像过滤器处理图像。

命令参数采用以下形式:"module arg1 arg2 arg3 ... argN",其中 module 是要调用的模块名称(例如“Analyze”),arg1 arg2 arg3 ... argN 是传递给处理模块的任意数量的参数。

-profile filename
+profile profile_name

管理图像中的 ICM、IPTC 或通用配置文件。

使用 -profile filename 添加 ICM(ICC 颜色管理)、IPTC(新闻信息)或通用配置文件到图像。

使用 +profile profile_name 删除指定配置文件。ImageMagick 使用标准文件名通配符,因此可以使用通配符表达式删除多个配置文件。这里我们删除图像中的所有配置文件,除了 XMP 配置文件:+profile "!xmp,*"

使用 magick identify -verbose 查找图像文件中的哪些配置文件。使用 -strip 删除所有配置文件(和注释)。

要提取配置文件,不使用 -profile 选项。而是简单地将文件写入图像格式,例如 APP1, 8BIM, ICM,IPTC

例如,要提取 Exif 数据(它存储在 JPEG 文件中的 APP1 配置文件中),使用。

设置 -define precision:highres-transform=true 以提高变换精度。注意,高精度变换是浮点数而不是无符号数,因此会略微降低性能。

magick cockatoo.jpg profile.exif

重要的是要注意,结果可能取决于原始图像是否已包含配置文件。还要记住,-profile 是一个“操作符”(而不是“设置”),因此每次遇到它时都会进行转换,按顺序在命令行中。例如,在以下示例中,如果原始图像为 CMYK 并带有配置文件,则 CMYK-CMYK-RGB 转换将产生结果。

magick CMYK.tif -profile "CMYK.icc" -profile "RGB.icc" RGB.tiff

此外,由于 ICC 配置文件不一定是对称的,因此额外的转换步骤可能会产生意外的结果。CMYK 配置文件通常非常不对称,因为它们涉及 3→4 和 4→3 通道映射。

-quality value

JPEG/MIFF/PNG 压缩级别。

对于 JPEG 和 MPEG 图像格式,质量范围从 1(最低图像质量和最高压缩)到 100(最佳质量但压缩效果最差)。默认情况下,如果可以确定输入图像的估计质量,则使用它,否则使用 92。当质量为 90 或更高时,色度通道不会下采样。使用 -sampling-factor 选项指定色度下采样的因子。

对于 JPEG-2000 图像格式,质量使用非线性方程映射到 Jasper 库所需的压缩比。此非线性方程旨在粗略地近似 JPEG v1 格式提供的质量。默认质量值 100,表示无损压缩请求。质量为 75 导致请求 16:1 压缩。

对于 MNG 和 PNG 图像格式,质量值设置 zlib 压缩级别(quality / 10)和过滤器类型(quality % 10)。默认 PNG “质量” 为 75,这意味着压缩级别为 7,并使用自适应 PNG 过滤,除非图像具有颜色映射,在这种情况下,它意味着压缩级别为 7 且不使用 PNG 过滤。

对于压缩级别 0(质量值小于 10),使用 Huffman-only 策略,这最快但未必是最糟糕的压缩。

如果过滤器类型为 4 或更小,则为所有扫描线使用指定的 PNG 过滤器类型。

0
none
1
sub
2
up
3
average
4
Paeth

如果过滤器类型为 5,则当质量大于 50 且图像没有颜色映射时,使用自适应过滤,否则不使用过滤。

如果过滤器类型为 6,则使用具有 minimum-sum-of-absolute-values 的自适应过滤。

仅当输出为 MNG 时,如果过滤器类型为 7,则使用 LOCO 颜色转换(像素内差分)和具有 minimum-sum-of-absolute-values 的自适应过滤。

如果过滤器类型为 8,则使用具有自适应 PNG 过滤的 zlib Z_RLE 压缩策略(或当压缩级别为 0 时,Z_HUFFMAN_ONLY 策略)。

如果过滤器类型为 9,则使用没有 PNG 过滤的 zlib Z_RLE 压缩策略(或当压缩级别为 0 时,Z_HUFFMAN_ONLY 策略)。

质量设置对 PNG 和 MNG 图像的外观或签名没有影响,因为压缩始终是无损的。

并非所有压缩级别、策略和 PNG 过滤器类型的组合都可通过 -quality 选项获得。对于更精确的控制,您可以分别使用 PNG:compression-level=N、PNG:compression-strategy=N 和 PNG:compression-filter=N 定义。请参阅 -define。定义中的值优先于 -quality 选项中的值。

有关更多信息,请参阅 PNG 规范。

对于 MIFF 和 TIFF 图像格式,quality/10 是 Zip/BZip 压缩级别,范围从 0(最差但最快压缩)到 9(最佳但最慢)。它对图像外观没有影响,因为压缩始终是无损的。

对于 BPG 图像格式,quality/2 是实际的 BPG 压缩级别(范围从 0 到 51)。

-quantize colorspace

使用此颜色空间减少颜色。

此设置定义用于对图像进行排序和减少所需颜色数量(用于后续抖动)的颜色空间,例如 -colors。请注意,当将图像保存到颜色受限的图像文件格式(例如 GIF 和 PNG8)时,颜色减少也会自动发生。

-quiet

抑制所有警告消息。仍会报告错误消息。

-virtual-pixel 设置将决定如何将超出图像本身的像素模糊到最终结果中。

-raise thickness

增亮或变暗图像边缘。

这将创建 3D 效果。使用 -raise 创建凸起效果,否则使用 +raise

与类似的 -frame 选项不同,-raise 不会改变图像的尺寸。

-random-threshold lowxhigh

将随机阈值应用于图像。

-range-threshold low-black,low-white,high-white,high-black

在图像中某个值范围内执行硬阈值或软阈值。

-read filename

显式读取图像而不是隐式读取。

此选项允许您从以“选项”字符开头的文件名读取,否则可能被误认为是选项(未知或其他)。

-read-mask filename

防止更新掩码指定图像像素。

这与使用用于复合蒙版操作的蒙版相同,灰度值导致蒙版附加到图像的混合更新。

使用 +read-mask 从图像中删除蒙版。

另请参阅 -clip-mask,它以相同的方式工作,但使用严格的布尔蒙版。

-red-primary x,y

设置红色色度主点。

-regard-warnings

注意警告消息。

此选项会导致某些图像格式中的某些警告被视为错误。

-remap filename

将图像中的颜色数量减少到此图像使用的颜色。

如果启用了 -dither 设置(默认),则根据需要在图像上抖动给定颜色,否则选择最接近的颜色(在 RGB 颜色空间中)来替换图像中的像素。

作为在当前图像序列中的所有图像上应用 -remap 颜色的副作用,所有图像都将具有相同的颜色表。这意味着,当保存到 GIF 等文件格式时,它将使用该颜色表作为所有图像的单个公共或全局颜色表,而无需额外的本地颜色表。

使用 +remap 将当前图像序列中的所有图像减少为在所有图像上使用公共颜色映射。这相当于将所有图像连接在一起(没有额外的背景颜色)并使用 -colors 限制为 256 色来减少这些图像的颜色,然后使用 -remap 将这些颜色映射到原始图像列表。这确保所有图像都遵循单个颜色映射。

如果所有图像中的颜色数量少于 256,则 +remap 不应执行任何颜色减少或抖动,因为不需要颜色更改。在这种情况下,其唯一效果是强制使用全局颜色表。这建议在使用 -colors-ordered-dither 减少动画图像序列中的颜色数量后使用。

注意,重新映射图像颜色映射最多具有 8 位精度。更深的颜色映射会自动与其他颜色合并以满足此要求。

-region geometry

设置后续操作适用的区域。

xy 偏移量与 -crop 中的处理方式相同。

有关 geometry 参数的完整详细信息,请参阅 图像几何

使用 +region 删除先前设置的任何区域。

-remote

执行远程操作。

唯一识别的命令是加载图像文件的名称。

如果您同时运行多个 显示 应用程序,请使用 window 选项指定要控制的应用程序。

-render

渲染矢量操作。

使用 +render 关闭渲染矢量操作。这在将结果保存到矢量格式(例如 MVG 或 SVG)时很有用。

-repage geometry

调整图像的画布和偏移信息。

此选项类似于 -page,但充当图像操作符而不是设置。您可以通过仅提供这些组件来分别设置画布大小或图像在画布上的偏移。

有关 geometry 参数的完整详细信息,请参阅 图像几何

如果给定 ! 标志,则给定的偏移将添加到现有偏移以相对于其先前位置移动图像。这对于动画序列很有用。

给定零画布大小,例如 '0x0',强制它重新计算画布大小,以便图像(在其当前偏移量处)将完全显示在该画布上(除非它具有负偏移量)。

使用 +repage 从图像中完全删除/重置虚拟画布元数据。

可以使用 -set 'page' 选项直接分配虚拟画布元数据。

-resample horizontalxvertical

将图像重新采样到指定的水平和垂直分辨率。

调整图像的大小,使其呈现大小与指定目标分辨率下的原始大小相同。例如,如果 300 DPI 的图像在 300 DPI 的设备上呈现 3 英寸 x 2 英寸,则当图像重新采样到 72 DPI 时,它将在 72 DPI 的设备上呈现 3 英寸 x 2 英寸。请注意,只有少数图像格式(例如 JPEG、PNG 和 TIFF)能够存储图像分辨率。对于不支持图像分辨率的格式,必须通过命令行上的 -density 指定原始图像的分辨率,然后再指定重新采样分辨率。

请注意,Photoshop 从专有的嵌入式配置文件存储和获取图像分辨率。如果图像中存在此配置文件,则 Photoshop 将继续使用其以前的图像分辨率,忽略标准文件头中指定的图像分辨率。

-reshape geometry

重新整形图像。

-resize geometry

调整图像大小。

有关 geometry 参数的完整详细信息,请参阅 图像几何。如果几何字符串中存在偏移量,则会忽略它们,并且 -gravity 选项无效。

如果 -filter 选项或 -define filter:option=value-resize 选项之前,则使用指定的正交过滤器调整图像大小。

许多图像处理算法假设你的图像采用线性光编码。如果你的图像经过伽马校正,你可以移除非线性伽马校正,应用变换,然后像这样恢复它。

magick portrait.jpg -gamma .45455 -resize 25% -gamma 2.2  \
  -quality 92 passport.jpg

注意,一些重采样函数是 Sinc 函数逼近中的阻尼振荡。因此,如果你的 ImageMagick 版本支持 HDRI,你可能会得到负叶。要消除它们,请在命令行中添加 -clamp

-respect-parentheses

设置会一直持续到括号边界。

-reverse

反转当前图像列表中的图像顺序。

-roll {+-}x{+-}y

根据给定量级水平或垂直滚动图像。

x 偏移将图像从右向左滚动。负 y 偏移将图像从下向上滚动。

-rotate degrees{<}{>}

将 Paeth 图像旋转应用于图像(使用剪切操作)。

使用 > 仅在图像宽度大于高度时旋转图像。使用 < 仅在图像宽度小于高度时旋转图像。例如,如果你指定 -rotate "-90>" 并且图像大小为 480x640,则图像不会旋转。但是,如果图像大小为 640x480,则它将旋转 -90 度。如果你使用 ><,请将其括在引号中以防止将其误解为文件重定向。

从旋转图像中遗留下来的角落处的空三角形将用 background 颜色填充。

另请参阅 -distort 运算符,特别是 'ScaleRotateTranslate' 变形方法。

图像的页面或虚拟画布信息也将旋转。使用 +repage 移除虚拟画布页面信息,如果不需要的话。

-rotational-blur angle

围绕图像中心模糊。

此操作以前称为“-radial-blur”。

-sample geometry

分别使用像素子采样和像素复制来缩小/放大图像。

通过直接从图像中采样像素来更改图像大小。放大时,像素以块形式复制。缩小时,像素进行子采样(即,跳过一些行和列)。

结果相当于使用 -resize-filter 设置为 point(最近邻),尽管 -sample 速度快得多,因为它避免了图像的所有滤波处理。因此,它完全忽略当前的 -filter 设置。

-sample 的关键特性是不会将新的颜色添加到结果图像中,尽管某些颜色可能会消失。

有关 geometry 参数的完整详细信息,请参阅 图像几何。与 -resize 不同,如果存在,则忽略几何字符串中的偏移。

实际采样点是正在采样的子区域的中间。因此,对图像进行单个像素采样将采用中间像素(或如果图像具有偶数维度则采用左上角中间像素)。但是,可以设置 -define 'sample:offset' 来修改此位置到正在采样的每个子区域内的其他位置,作为百分比偏移。

默认情况下,此值为 '50'(中间点),但可以设置为 '0'(左上角),'100'(右下角)或具有单独的 X 和 Y 偏移量,例如 '0x50'(采样子区域的左中间边缘)。

-sampling-factor horizontal-factorxvertical-factor

JPEG 或 MPEG-2 编码器和 YUV 解码器/编码器使用的采样因子。

此选项指定 JPEG 编码器用于色度下采样的采样因子。如果省略此选项,JPEG 库将使用其自己的默认值。在读取或写入 YUV 格式以及写入 M2V(MPEG-2)格式时,使用 -sampling-factor 2x1-sampling-factor 4:2:2 来指定 4:2:2 下采样方法。

-scale geometry

分别使用像素块平均和像素复制来缩小/放大图像。

通过在缩小时平均像素或在放大时替换像素来更改图像大小。

结果相当于使用 -resize-filter 设置为 box。虽然它速度快得多,因为它避免了图像的所有滤波处理。因此,它完全忽略当前的 -filter 设置。

如果在缩小(减小)图像时,原始图像的大小是新图像大小的整数倍,则用于生成新像素颜色的平均像素数在整个图像中是相同的。这是一种称为“合并”的特殊情况,通常用作减少图像噪声的方法,例如由数码相机生成的照片,尤其是在弱光条件下。

-scene value

设置场景编号。

此选项设置图像的场景编号或图像序列中的第一张图像的场景编号。

指定要捕获的屏幕。

此选项指示用于获取图像的 GetImage 请求应在根窗口上执行,而不是在指定窗口上直接执行。通过这种方式,你可以获取覆盖指定窗口的其他窗口的片段,更重要的是,你可以捕获位于指定窗口上的菜单或其他弹出窗口,这些菜单或弹出窗口是独立窗口,但显示在指定窗口之上。

-script filename

将控制权转移到名为文件。

-seed

为伪随机数序列播种

-segment cluster-thresholdxsmoothing-threshold

分割图像的颜色。

通过分析颜色分量的直方图并使用模糊 c 均值技术识别同质单元来分割图像。这是 ImageMagick 颜色量化例程的一部分。

cluster threshold 指定为每个聚类中必须超过聚类阈值的像素数,以被视为有效。 Smoothing threshold 消除直方图二阶导数中的噪声。随着值的增加,你可以期望二阶导数更加平滑。默认值为 1.5。

如果定义了 -verbose 设置,则会返回颜色聚类的详细报告。

-selective-blur radius
-selective-blur radius{xsigma}{+threshold}

选择性地模糊对比度阈值内的像素。

模糊对比度小于或等于阈值的像素。阈值可以表示为 QuantumRange 的分数或百分比。

sigma 值是重要的参数,它决定了实际的模糊量。

仅使用 radius 来确定用于保存计算高斯分布的数组的大小。它应该是整数。如果未给出或设置为零,IM 将计算可为高斯分布提供有意义结果的最大可能半径。

-separate

将图像通道分离成灰度图像。使用 -channel 指定通道。

-sepia-tone percent-threshold

模拟棕褐色调照片。

threshold 指定为强度的百分比阈值(0 - 99.9%)。

此选项对图像应用特殊效果,类似于在暗房中通过棕褐色调处理获得的效果。阈值范围从 0 到 QuantumRange,它是棕褐色调程度的度量。80% 的阈值是合理色调的良好起点。

-set key value

+set key

为当前图像序列中的图像设置图像属性和属性。

这将分配(或修改)附加到当前图像序列中所有图像的特定设置。使用选项的 +set 形式将根据需要删除或将该设置重置为默认状态。

例如,它将修改通常由选项 -delay-dispose-page-colorspace 覆盖的特定已知图像元数据“属性”;通常在读取图像之前分配,通过使用与上述选项同名的 key

如果给定的 key 不匹配特定的已知“属性”(如上所示),则设置将存储为自由形式的“属性”字符串。这些设置在 -verbose 信息(“info:” 输出格式)中列为“属性”。

这包括由选项 -comment-label-caption 设置和分配的字符串“属性”。这些选项实际上分配全局“工件”,这些“工件”在读取图像时自动分配(并且任何 格式百分比转义 扩展)给图像。例如

$ magick rose: -set Comment 'Rose is a rose is a rose is a rose' rose.jpg
identify -format %c rose.jpg
Rose is a rose is a rose is a rose

设置值也可以使用 格式和打印图像属性 在定义的值中。例如

$ magick rose: -set origsize '%wx%h' -resize 50% \
  -format 'Old size = %[origsize]  New size = %wx%h' info:
Old size = 70x46  New size = 35x23

其他可用的已知“属性”包括: date:timestampdate:createdate:modifysignature

-repage 运算符还允许你修改内存中图像的“page”属性(也参见 -page)。但是,它旨在提供对该“属性”子部分的更精细控制。 -set page 选项将仅提供“page”属性的直接、未修改的赋值。

此选项还可以将颜色空间或配置文件与图像关联。例如,

magick image.psd -set profile ISOcoated_v2_eci.icc image-icc.psd

某些“属性”必须以特定方式定义才能使用。例如,只有以 "filename:" 为前缀的“属性”才能用于修改图像的输出文件名。例如

magick rose: -set filename:mysize '%wx%h' 'rose_%[filename:mysize].png'

如果设置值以 "option:" 为前缀,则设置将保存为全局“工件”,就像使用 -define 选项一样。因此,这些设置在全局范围内,它们可以用来传递一个特定图像的“属性”和“属性”,以一种允许你在完全不同的图像中使用它们的方式,即使原始图像早已被修改或销毁。例如

magick rose:  -set option:rosesize '%wx%h' -delete 0 \
  label:'%[rosesize]'   label_size_of_rose.gif"

请注意, 格式百分比转义 仅会在给定的 key 不匹配现有“属性”或“属性”的情况下匹配“工件”。

你可以通过在值前加上 registry: 来设置图像注册表属性。

-set profile 选项还可以使用以下所示的命令行选项或通过编程接口设置配置文件,将先前格式化的辅助块注入输出 PNG 文件。

magick in.png -set profile PNG-chunk-x:<filename> out.png

其中 x 是一个位置标志, filename 是包含块名称的第一个 4 个字节,然后是冒号 (":"),然后是块数据。此编码器将计算块长度和 CRC,因此这些内容不应包含在文件中。

"x" 可以是“b”(PLTE 之前)、“m”(中间,即 PLTE 和 IDAT 之间)或“e”(结尾,即 IDAT 之后)。如果你想要写入相同类型的多个块,则在“x”之后添加一个简短的唯一字符串以防止后续配置文件覆盖前面的配置文件,例如

magick in.png -set profile PNG-chunk-b01:file01 \
  -profile PNG-chunk-b02:file02 out.png

-shade azimuthxelevation

使用远光源给图像着色。

azimuthelevation 指定为光源的位置。使用 +shade 将着色结果作为灰度图像返回。

-shadow percent-opacity{xsigma}{+-}x{+-}y{%}

模拟图像阴影。

-shared-memory

使用共享内存。

此选项指定实用程序是否应尝试使用共享内存来处理位图。ImageMagick 必须使用共享内存支持进行编译,并且显示器必须支持 MIT-SHM 扩展。否则,此选项将被忽略。默认值为 True

-sharpen 半径
-sharpen 半径{x标准差}

锐化图像。

使用给定半径和标准差(sigma)的高斯运算符。

标准差 值是重要的参数,它决定了将要进行的实际锐化程度。

仅使用 radius 来确定用于保存计算高斯分布的数组的大小。它应该是整数。如果未给出或设置为零,IM 将计算可为高斯分布提供有意义结果的最大可能半径。

-shave 几何形状

从图像边缘修剪像素。

几何形状 参数的大小部分指定要从图像两侧移除区域的宽度,以及要从顶部和底部移除区域的高度。偏移量将被忽略。

有关 geometry 参数的完整详细信息,请参阅 图像几何

-shear X度[xY度]

沿 x 轴和/或 y 轴错切图像。

错切角度可以是正的、负的或零。当省略 Y度 时,它默认为 X度。当给出两个角度时,水平错切成分在垂直错切成分之前执行。

错切将图像的一条边沿 x 轴或 y 轴滑动(即水平或垂直),创建平行四边形。每个错切量的多少由相应的错切角度控制。对于水平错切,X度 相对于“向上”(负 y 轴)顺时针测量,当 0°<X度<90° 时,将顶边向右滑动,当 90°<X度<180° 时,将顶边向左滑动。对于垂直错切,Y度 相对于“右”(正 x 轴)顺时针测量,当 0°<Y度<90° 时,将右边缘向下滑动,当 90°<Y度<180° 时,将右边缘向上滑动。

从错切图像中遗留下来的空三角形将用 -background 选项定义的颜色填充。颜色使用 -fill 选项下描述的格式指定。

水平错切在垂直部分之前执行。这一点需要注意,因为水平错切和垂直错切不 交换,即序列中的顺序很重要。例如,以下两个命令是不等价的。

magick logo: -shear 20x0 -shear 0x60 logo-sheared.png
convert logo: -shear 0x60 -shear 20x0 logo-sheared.png

上面两个命令中的第一个等价于以下命令,除了创建的空空间量之外;后面的命令生成较小的图像,因此在时间和空间方面是更好的选择。

magick logo: -shear 20x60 logo-sheared.png

-sigmoidal-contrast 对比度x中点

在不饱和高光或阴影的情况下增加对比度。

使用 S 型传递函数增加图像对比度,而不会饱和高光或阴影。对比度 指示要增加多少对比度。例如,0 是没有,3 是典型,20 是很多。

中点 指示对比度最大变化“斜率”应落在结果图像中的哪个位置(0 是白色;50% 是中间灰;100% 是黑色)。

默认情况下,图像对比度会增加,使用 +sigmoidal-contrast 降低对比度。

要实现与 S 型亮度变化等效的效果(类似于伽马调整),您可以使用 -sigmoidal-contrast {亮度}x0% 增加亮度,并使用 +sigmoidal-contrast {亮度}x0% 降低亮度。注意使用 '0' 作为 S 型曲线的中间点。

使用非常高的 对比度 将产生一种“平滑阈值化”的效果。这不是真正的阈值(具有高混叠效应),而是围绕阈值 中点 的渐变灰度。

-silent

静默操作。此选项仅由 导入 工具使用。

-similarity-threshold

子图像匹配的最小 RMSE。

如果使用此设置,则搜索将在找到度量值小于或等于该值的匹配后停止。这将导致第二输出图像部分填充。使用值为零将导致搜索在找到第一个完美匹配时停止。如果未设置此选项,则搜索将继续完成或根据 -dissimilarity-threshold 进行限制。

-size 宽度[x高度][+偏移量]

设置图像的宽度和高度。

使用此选项指定原始图像的宽度和高度,这些原始图像的尺寸未知,例如 GRAYRGBCMYK。除了宽度和高度之外,使用 -size 和偏移量来跳过图像中的任何头信息或告诉 MAP 图像文件中的颜色数量(例如 -size 640x512+256)。

对于照片 CD 图像,可以选择以下尺寸:

192x128
384x256
768x512
1536x1024
3072x2048

-sketch 半径
-sketch 半径{x标准差}+角度

模拟铅笔素描。

使用给定的半径、标准差(sigma)和角度进行素描。给定的角度是图像素描的方向。这是人们认为物体来自的方向。

-smush 偏移量

将图像序列附加在一起,忽略透明度。

Smush 是 -append 的更灵活版本,将序列中的图像从上到下(-smush)或从左到右(+smush)连接,并在图像之间根据指定的偏移量留出间隙。

如果偏移量为负,则图像将重叠该量。

-smush 尊重 -gravity。任何空隙都将用 -background 颜色填充。

对于零偏移量和透明图像,两个图像的非透明部分将尽可能地对齐,而不会重叠。

-snaps

设置屏幕快照的数量。

使用此选项从 X 服务器屏幕抓取多个图像,以创建动画序列。

-solarize 百分比阈值

将高于阈值级别的所有像素取反。

因子 指定为强度的百分比阈值(0 - 99.9%)。

此选项产生一种太阳化效果,这种效果在将摄影胶片在显影过程中曝光到光时可以看到。

-sort-pixels

按强度从小到大对每个扫描线的像素进行排序。

-sparse-color 方法 'x,y 颜色 ...'

使用指定颜色点的颜色给定图像着色,并使用给定方法填充其他中间颜色。

barycentric
给定 3 个点的三个点三角形颜色。仅给出 2 个点将在这两个点之间形成线性渐变。生成的渐变延伸到由这 3 个点创建的三角形之外。
bilinear
类似于 barycentric,但适用于 4 个点。少于 4 个点将回退到 barycentric。
voronoi
简单地将每个像素映射到给定颜色点最近的颜色。结果是多边形的“单元格”的纯色。
manhattan
类似于 voronoi,但生成的多分段“单元格”被映射到固定的坐标系。
shepards
根据倒数平方距离的比率着色点。在平均颜色的海洋中生成颜色的点。
inverse
根据倒数距离的比率着色点。这会生成比“shepards”更尖锐的颜色点,而不是圆形的点。在平均颜色的海洋中生成颜色的点。

这些点根据图像在虚拟画布上的位置(-page-repage 偏移量)放置,实际上不必存在于给定图像上,而可以是图像边缘之外的某个点。所有点都是浮点数。

仅修改由 -channel 定义的颜色通道,这意味着默认情况下不会影响蒙版/alpha 透明度通道。通常在操作之前或之后关闭透明度通道。

当然,如果某些颜色点是透明的以生成透明渐变,则图像还需要启用透明度来存储这些值。

所有上述方法在给定单个颜色点时,将用给定的颜色替换图像中的所有颜色,而不管该点如何。这是合乎逻辑的,并提供了一种将图像重新着色为默认值的替代技术。

-splice 几何形状

将当前背景颜色插入图像。

这将根据给定的 -gravity 几何设置,将当前 -background 颜色添加为行和列到给定的图像中。有关 几何形状 参数的完整详细信息,请参阅 图像几何形状。本质上 -splice 将图像分成四个象限,并通过插入的行和列将它们分开。

如果几何形状的某个维度为零,则不会为该维度添加行或列。类似地,使用适当的 -gravity 设置的零偏移量将行和列添加到图像的边缘,仅在该边缘填充图像。边缘填充是 -splice 最常用于的情况。

如果稍后使用相同 几何形状-gravity-chop,则添加的所有拼接将被移除。

-spread

将图像像素随机移动。

参数 定义围绕每个像素选择候选像素进行混合的邻域的大小。

查找操作受 -interpolate 设置控制。

-statistic 类型 几何形状

用邻域的相应统计数据替换每个像素。

从这些统计类型中进行选择

对比度
邻域中值的 (max - min) 除以 (max + min)
最大值
邻域中每个通道的最大值
梯度
邻域中值的 (max - min)
最大值
邻域中每个通道的最大值
最小值
邻域中每个通道的最小值
Mean
平均值
Median
邻域中每个通道的中值
众数
邻域中每个通道的众数(最频繁的值)
非峰值
邻域中每个通道中值之前或之后的数值
RMS
均方根值
标准差
邻域中每个通道的标准差

-stegano 偏移量

在图像中隐藏水印。

使用偏移量来开始图像隐藏从图像开头的一些像素。请注意此偏移量和图像大小。您需要此信息来恢复隐写图像(例如显示 -size 320x256+35 stegano:image.png)。

-stereo +x{+y}

合成两张图像以创建红/青立体视差图。

立体对的左侧(第二张图像)保存为输出图像的红色通道。右侧(第一张图像)保存为绿色和蓝色通道。需要红绿立体眼镜才能正确查看立体图像。

-storage-type 类型

像素存储类型。以下是有效类型:

char
无符号字符
double
双精度浮点数
float
浮点数
integer
整数
long
长整数
量子
像素以 ImageMagick 分发的本机深度存储
short
无符号短整数

浮点数和双精度浮点数从 0.0 到 1.0 进行归一化,否则像素值范围从 0 到存储类型可以支持的最大值。

-stretch 字体拉伸

设置字体拉伸样式。

此设置建议 ImageMagick 应尝试应用于当前选定字体系列的拉伸类型。从以下选项中选择 字体拉伸

Any
Condensed
Expanded
ExtraCondensed
ExtraExpanded
Normal
SemiCondensed
SemiExpanded
UltraCondensed
UltraExpanded

要打印完整列表的拉伸类型,请使用 -list stretch

有关影响字体的其他设置,请参阅选项 -font-family-style-weight

-strip

剥离图像的任何配置文件、注释或以下 PNG 块:bKGD、cHRM、EXIF、gAMA、iCCP、iTXt、sRGB、tEXt、zCCP、zTXt、date。要移除方向块,orNT,将方向设置为未定义,例如 -orient Undefined

-stroke color

在绘制图形原语时使用的颜色。

颜色使用 -fill 选项中描述的格式指定。

有关更多详细信息,请参阅 -draw

-strokewidth value

设置描边宽度。

有关更多详细信息,请参阅 -draw

-style fontStyle

为文本设置字体样式。

此设置建议 ImageMagick 应尝试应用于当前选定字体系列的字体样式。从以下选项中选择 fontStyle

Any
Italic
Normal
Oblique

有关影响字体的其他设置,请参阅选项 -font-family-stretch-weight

-subimage-search

搜索子图像。

此选项需要进行比较搜索,以查找较小图像在较大图像中的最佳匹配位置。此搜索将生成两个图像(或两个帧)。第一个是“差异”图像,第二个是“匹配得分”图像。

“匹配得分”图像较小,包含每个可能位置的像素,即给定子图像的左上角。也就是说,其大小将是 larger_image - sub_image + 1。此图像中最亮的区域是最佳匹配位置,这也将被报告。请注意,这可能不是完美的匹配,实际亮度将反映这一点。其他明亮的“峰值”可用于查找其他可能的匹配位置。

请注意,搜索将尝试在较大图像中的每个可能位置比较子图像,因此它可能非常慢。子图像越小,此搜索速度越快。

-swap index,index

交换图像序列中两个图像的位置。

例如,-swap 0,2 交换当前图像序列中的第一张和第三张图像。使用 +swap 切换序列中的最后两张图像。

-swirl degrees

围绕中心旋转图像像素。

Degrees 定义漩涡的紧密程度。

-synchronize

将图像同步到存储设备。

设置为“true”以确保所有图像数据都已完全刷新并同步到磁盘。这会带来性能损失,但好处包括确保发生系统崩溃时存在有效的图像文件,以及尽早报告磁盘空间不足以存储图像像素缓存。

-taint

标记图像已修改。

-text-font name

用于写入固定宽度文本的字体。

指定首选字体名称,用于以固定宽度(打字机样式)格式化文本。默认值为 14 点 Courier

您可以标记字体以指定它是否是 PostScript、TrueType 或 OPTION1 字体。例如,Courier.ttf 是 TrueType 字体,x:fixed 是 OPTION1。

-texture filename

平铺到图像背景的纹理名称。

-threshold value{%}

将同时应用黑白阈值到图像。

任何超出指定阈值的像素值(更具体地说,使用 -channel 设置的那些通道)都重新分配为最大通道值,而所有其他值都分配为最小值。

阈值值可以以百分比或对应于所需通道值的绝对整数值给出。当以整数值给出时,最小可实现值是 0(对应于所有通道受影响时的黑色),但最大值(对应于白色)是特定 ImageMagick 版本的“量子深度”,因此取决于安装。因此,对于大多数应用程序,建议将阈值值指定为百分比。

以下将强制红色值高于 50% 的像素具有 100% 的红色值,而红色值低于或等于 50% 的像素在红色通道中设置为 0。绿色、蓝色和 alpha 通道(如果存在)保持不变。

magick in.png -channel red -threshold 50% out.png

作为(可能)不切实际但具有指导意义的示例,以下将生成与输入图像具有相同尺寸的全黑图像和全白图像。

magick in.png -channel RGB -threshold 100% black.png
convert in.png -channel RGB -threshold -1 white.png

另请参阅 -black-threshold-white-threshold

-thumbnail geometry

创建图像缩略图。

这类似于 -resize,但它针对性能进行了优化。此外,注释和颜色配置文件被删除,并设置了“Thumb”属性。此选项会尊重 -filter,例如,为了进一步提高性能但略微降低质量,使用 -filter box

有关 geometry 参数的完整详细信息,请参阅 图像几何

-tile filename

设置用于填充后续图形原语的平铺图像。

-tile geometry

指定图像的布局。

有关 geometry 参数的完整详细信息,请参阅 图像几何

-tile

指定后续合成操作在图像上重复进行。

-tile-offset {+-}x{+-}y

指定平铺图像的偏移量,相对于其平铺在其上的背景图像。

这应在通过 -tile-texture 设置平铺图像之前设置,或直接应用于使用 TILE:PATTERN: 输入格式创建平铺画布。

在内部,ImageMagick 会根据设置平铺图像时给出的参数对平铺图像进行 -roll

-tint value

用填充颜色给图像着色。

用填充颜色给图像着色。

以百分比指定着色量。纯色,如黑色、白色、红色、黄色,不受 -tint 的影响。仅影响中等色调,例如各种灰度。

-title string

为显示的图像分配标题。", "animate", "display", "montage

使用此选项为图像分配特定标题。这分配给图像窗口,通常显示在窗口标题栏中。您可以通过嵌入 -format 选项下描述的特殊格式字符,可选地包含图像文件名、类型、宽度、高度、Exif 数据或其他图像属性。

例如,

-title "%m:%f %wx%h"

将产生标题为 MIFF:bird.miff 512x480 的图像,该图像标题为 bird.miff,宽度为 512,高度为 480。

-transform

转换图像。

此选项应用来自先前 -affine 选项的变换矩阵。

magick -affine 2,2,-2,2,0,0 -transform bird.ppm bird.jpg

此操作现已被 -distort 'AffineProjection' 方法取代。

-transparent color

使图像中的此颜色透明。

color 参数使用 -fill 选项下描述的格式定义。可以使用 -fuzz 设置来匹配和替换与给定颜色相似的颜色。

使用 +transparent 反转匹配像素。也就是说,使所有不匹配的颜色透明。

-opaque 操作与 -transparent 完全相同,但将匹配颜色替换为当前 -fill 颜色设置,而不是透明。但是,-transparent 操作还确保启用图像的 alpha 通道,如 "-alpha set",并且不需要您修改 -channel 以启用 alpha 通道处理。

请注意,这不会将颜色定义为用于颜色映射图像格式(如 GIF)的“透明颜色”。为此,请使用 -transparent-color

-transparent-color color

设置透明颜色。

有时这用于保存到 GIF 和 PNG8 等图像格式,这些格式使用此颜色表示布尔透明度。这不会使颜色透明,它只会定义透明颜色在保存图像的颜色调色板中的颜色。使用 -transparent 使不透明颜色透明。

此选项允许您同时具有不透明可见颜色和相同颜色值的透明颜色,而不会发生冲突。也就是说,您可以使用相同的颜色作为透明颜色和不透明颜色区域。反过来,这使您可以选择当图像被不处理透明颜色的应用程序显示时合适的透明颜色,同时允许 ImageMagick 正确处理此类图像。

默认透明颜色是 #00000000,即完全透明的黑色。

-transpose

沿左上到右下对角线镜像图像。

此选项在数学上转置像素数组。它等同于序列 -flip -rotate 90

-transverse

沿图像的左下到右上对角线镜像图像。等同于操作 -flop -rotate 90

-treedepth value

颜色缩减算法的树深度。

通常,此整数值为零或一。值为零或一会导致颜色缩减算法使用最佳树深度。

最佳深度通常允许以最快的计算速度和最少的内存量来最好地表示源图像。但是,默认深度不适用于某些图像。为了确保最佳表示,请尝试为此参数设置 2 到 8 之间的值。有关更多详细信息,请参阅 颜色缩减算法

需要 -colors-monochrome 选项,或写入需要颜色缩减的图像格式,才能使此选项生效。

-trim

修剪图像。

此选项删除任何与角像素颜色完全相同的边缘。使用 -fuzz 使 -trim 删除与角像素颜色几乎相同的边缘。

图像的页面或虚拟画布信息将保留,允许您从图像中提取 -trim 操作的结果。如果不需要虚拟画布页面信息,请使用 +repage 删除虚拟画布页面信息。

如果修剪后的图像“消失”,则会生成警告,并且将返回一个特殊的单像素透明“丢失”图像,就像 -crop 操作“丢失”图像主体时一样。

使用 -define trim:percent-background=0% 删除图像中的所有背景。背景容忍度以百分比指定。0% 表示不容忍任何背景。50% 表示边缘最多可以包含 fuzz-factor 百分比的背景像素。

使用 -define trim:edges={north,east,south,west} 分隔以仅修剪图像的指定边缘,例如 -define trim:edges=north,south -fuzz 5% -trim

使用 -define trim:minSize=geometry 将修剪限制为指定大小。

使用 -background background-color 识别感兴趣区域周围的背景颜色。

-type type

图像类型。

从以下选项中选择:BilevelGrayscaleGrayscaleAlphaPalettePaletteAlphaTrueColorTrueColorAlphaColorSeparationColorSeparationAlpha

通常,当格式支持不同的子格式(例如灰度和真彩色)时,编码器将尝试选择高效的子格式。可以使用 -type 选项覆盖此行为。例如,为了防止 JPEG 以灰度格式写入,即使只有灰度像素,也使用。

magick bird.png -type TrueColor bird.jpg

同样,使用 -type TrueColorAlpha 强制编码器写入 alpha 通道,即使图像是不透明的,如果输出格式支持透明度。

使用 -type optimize 确保图像以尽可能小的文件大小写入。

-undercolor color

设置注释边界框的颜色。

颜色使用 -fill 选项中描述的格式指定。

有关更多详细信息,请参阅 -draw

-update seconds

检测图像文件是否已修改并重新显示。

假设您正在显示图像,而当前显示的文件被覆盖。display 将自动检测输入文件是否已更改,并相应地更新显示的图像。

-unique-colors

丢弃除一个像素颜色之外的所有颜色。

-units type

图像分辨率的单位。

可以选择:UndefinedPixelsPerInchPixelsPerCentimeter。此选项通常与 -density 选项结合使用。

-unsharp radius
-unsharp radius{xsigma}{+gain}{+threshold}

使用 Unsharp Mask 运算符锐化图像。

-unsharp 选项锐化图像。图像与给定半径和标准差(sigma)的高斯运算符进行卷积。为了获得合理的结果,半径应大于 sigma。使用半径 0 可让方法选择合适的半径。

标准差 值是重要的参数,它决定了将要进行的实际锐化程度。

仅使用 radius 来确定用于保存计算高斯分布的数组的大小。它应该是整数。如果未给出或设置为零,IM 将计算可为高斯分布提供有意义结果的最大可能半径。

参数为

radius
高斯的半径,以像素为单位,不包括中心像素(默认值为 0)。
sigma
高斯的标准差,以像素为单位(默认值为 1.0)。
gain
原始图像和模糊图像之间的差异的比例,添加到原始图像中(默认值为 1.0)。
threshold
阈值,作为 QuantumRange 的比例,需要应用差异量(默认值为 0.05)。

-verbose

当此选项在 -identify 选项或 info: 前面时,打印有关图像的详细信息。

-version

打印 ImageMagick 版本字符串并退出。

-view string

FlashPix 查看参数。

-vignette radius{xsigma}{+-}x{+-}y{%}

以散景风格软化图像边缘。

散景效果的衰减由 radiusxsigma 控制。对于标称衰减,这将设置为 0xsigma。值为 0x0 将生成没有衰减的圆/椭圆。参数 x 和 y 控制圆的大小。较大的值减小半径,较小的值增加半径。+0+0 值将生成与图像大小相同的圆/椭圆。x 和 y 的默认值是相应图像尺寸的 10%。因此,半径将减少 10%,即圆/椭圆的直径将是相应图像尺寸的 80%。注意,几何中的百分号影响 xy,而 radiussigma 是绝对的(例如,-vignette "0x2+10%+10%").

-virtual-pixel method

指定 虚拟像素 的内容。

此选项定义如果和何时颜色查找完全“错过”源图像时,应使用哪种颜色源。看起来围绕源图像的那些颜色。通常,此颜色是从源图像派生的,但也可能设置为指定背景颜色。

可以选择以下方法

background
图像周围的区域是背景颜色
黑色
图像周围的区域是黑色
棋盘格
交替使用图像和背景颜色的小方块
dither
非随机 32x32 抖动图案
edge
将边缘像素扩展到无穷大
灰色
图像周围的区域是灰色
水平平铺
水平平铺图像,背景颜色在上面/下面
水平平铺边缘
水平平铺图像并复制边框像素
镜像
镜像平铺图像
随机
从图像中选择一个随机像素
tile
平铺图像(默认)
transparent
图像周围的区域是透明的黑色
垂直平铺
垂直平铺图像,两侧是背景颜色
垂直平铺边缘
垂直平铺图像并复制边框像素
白色
图像周围的区域是白色

默认值为“edge”。

这对于诸如 -distort-implode-fx 之类的失真运算符非常重要。但是,它也影响可能访问图像外部像素的操作,例如 -convolve-blur-sharpen

要打印完整列表的虚拟像素类型,请使用 -list virtual-pixel 选项。

-visual type

使用此 X 视觉类型来动画图像。", 'animate', 'display'

可以选择以下视觉类

StaticGray    TrueColor
GrayScale     DirectColor
StaticColor   default
PseudoColor   visual id

X 服务器必须支持您选择的可视化,否则会发生错误。如果没有指定可视化,则选择可以在默认屏幕上显示最多同时颜色的视觉类。

-watermark brightnessxsaturation

使用给定的亮度和饱和度百分比给图像加水印。

采用灰度图像(带 alpha 遮罩),根据水印图像的灰度值和 brightness 百分比修改目标图像的亮度。目标颜色的饱和度属性只是直接修改 saturation 百分比,默认为 100%(无颜色变化)。

-wave amplitude
-wave amplitudexwavelength

将图像的列剪切成正弦波。

-wavelet-denoise threshold
-wavelet-denoise thresholdxsoftness

使用小波变换从图像中去除噪声。阈值是所有内容都被认为是噪声的值,范围从 0.0(无)到 QuantumRange 或使用百分比(例如 5%)。柔软度衰减阈值,通常范围从 0.0(无,默认)到 1.0。值越高,图像中保留的噪声越多。

-weight fontWeight

设置文本的字体粗细。

此设置建议 ImageMagick 应尝试应用于当前选定字体系列的字体粗细。对于 fontWeight 使用正整数,或从以下选项中选择。

Thin
fontWeight = 100 相同。
ExtraLight
fontWeight = 200 相同。
浅色
Same as fontWeight = 300.
Normal
fontWeight = 400 相同。
Medium
fontWeight = 500 相同。
DemiBold
fontWeight = 600 相同。
Bold
fontWeight = 700 相同。
ExtraBold
fontWeight = 800 相同。
Heavy
fontWeight = 900 相同。

要打印完整列表的粗细类型,请使用 -list weight

有关影响字体的其他设置,请参阅选项 -font-family-stretch-style

-white-balance

根据 LAB 颜色空间中的灰度世界假设对图像应用白平衡。

使用 -define white-balance:vibrance=value{%} 更改 a 和 b 通道的颜色活力。

-white-point x,y

色度白点。

-white-threshold value{%}

将所有高于阈值的像素强制为白色,而将所有低于或等于阈值的像素保持不变。

阈值值可以给出为百分比或作为 [0, QuantumRange] 内的绝对整数值,对应于所需的 -channel 值。有关阈值和结果值的更多详细信息,请参阅 -threshold

-window id

使图像成为窗口的背景。", 'animate', 'display'

id 可以是窗口 ID 或名称。指定 root 以选择 X 的根窗口作为目标窗口。

默认情况下,图像被平铺到目标窗口的背景上。如果指定了 backdrop-resize,则图像被背景颜色包围。有关详细信息,请参阅 X RESOURCES

如果图像的唯一颜色数超过目标窗口颜色映射允许的颜色数,则图像将不会显示在根窗口上。使用 -colors 来减少颜色数量。

-window-group

指定窗口组。

-word-break type

设置行分隔符是否出现在文本溢出其内容框的任何地方。可以选择 normal,默认值,或 break-word

-write filename

写入图像序列。

-write filename 选项之前的图像序列被写入,并且处理继续使用当前状态的相同图像,如果有其他选项。要写入后将图像恢复到原始状态,请使用 +write filename 选项。

使用 -compress 指定图像压缩类型。

-write-mask filename

防止更新掩码指定图像像素。

这与使用用于复合蒙版操作的蒙版相同,灰度值导致蒙版附加到图像的混合更新。

使用 +write-mask 从图像中删除遮罩。

另请参阅 -clip-mask,它以相同的方式工作,但使用严格的布尔蒙版。