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

composite

使用示例 • 选项汇总

使用 composite 程序可以将一幅图像叠加到另一幅图像之上。关于如何组织 composite 命令,请参阅命令行处理,或参见下面的命令使用示例。

使用示例

为说明 composite 命令的用途和易用性,这里列举几个示例。首先,让我们把一张笑脸叠加到 rose 上:

magick composite -gravity center smile.gif  rose: rose-over.png

smile over rose ==> rose

使用 Atop 可以制作三维立体效果:

magick -size 70x70 canvas:none -fill red -draw 'circle 35,35 10,30' red-circle.png
magick -size 70x70 canvas:none -draw "circle 35,35 35,20" -channel RGB -negate -channel A -gaussian-blur 0x8 white-highlight.png
magick composite -compose atop -geometry -13-17 white-highlight.png red-circle.png red-ball.png

white highlight atop red circle ==> red ball

又或者,假设你想把一只熊无缝地融入小溪中。试试下面这条命令:

magick -verbose stream.jpg bear.jpg bear_mask.png -define compose:args=400x0.0002+100 \
  -compose seamless-blend -geometry +30+30 -composite bear-in-stream.png

蒙版标记出熊周围需要混合的区域。无缝混合是一个迭代过程。这里,我们将迭代次数限制为不超过 400 次,若混合收敛(残差的 RMSE 小于 0.0002)则提前结束。残差值(RMSE)每 100 次迭代打印一次。请注意,无缝混合在启用 HDRI 功能时效果最佳。

magick -verbose stream.jpg \( bear.jpg -read-mask only_bear.png \) bear_mask.png \
  -define compose:args=400x0.0002+100 -compose seamless-blend -geometry +30+30 -composite \
  bear-in-stream.png

这里我们创建了一个 read 蒙版,用于将前景对象与其背景区分开来。前景对象本身不进行混合,仅对其周围进行混合。read-mask 会保留熊的颜色,防止其像第一个示例那样被提亮。请注意,read-mask 必须是白底黑图,而普通蒙版则是黑底白图。

你可以在 Examples of ImageMagick Usage 中找到更多使用 composite 的示例。关于它们的更多信息及数学原理,请参阅 SVG Alpha Compositing

选项汇总

composite 命令可识别以下选项。点击某个选项可获取该选项工作方式的更多详情。

选项 说明
-affine matrix 仿射变换矩阵
-alpha alpha 通道的 on, activate, off, deactivate, set, opaque, copy, transparent, extract, background, shape 设置
-authenticate value 用此密码解密图像
-blend geometry 混合图像
-blue-primary point 色度蓝原色点
-border geometry 用彩色边框包围图像
-bordercolor color 边框颜色
-channel type 将选项应用于选定的图像通道
-colors value 图像中期望的颜色数量
-colorspace type 设置图像色彩空间
-comment string 用注释为图像添加批注
-compose operator 设置图像合成运算符
-compress type 图像压缩类型
-debug events 显示大量调试信息
-decipher filename 将密文像素转换为明文
-define format:option 定义一个或多个图像格式选项
-density geometry 图像的水平和垂直密度
-depth value 图像位深度
-displace geometry 按位移图所定义的量偏移图像像素
-dissolve value 按给定百分比溶合两幅图像
-dither method 对图像应用误差扩散
-encipher filename 将明文像素转换为密文像素
-encoding type 文本编码类型
-endian type 图像的字节序(MSB 或 LSB)
-extract geometry 从图像中提取区域
-filter type 调整图像尺寸时使用此滤波器
-font name 用此字体渲染文本
-geometry geometry 图像的期望尺寸或位置
-gravity type 文本的水平和垂直放置
-green-primary point 色度绿原色点
-help 打印程序选项
-identify 识别图像的格式和特性
-interlace type 图像隔行扫描方案类型
-interpolate method 像素颜色插值方法
-label string 为图像分配标签
-level value 调整图像对比度级别
-limit type value 像素缓存资源上限
-log format 调试信息的格式
-monitor 监视进度
-monochrome 将图像转换为黑白
-negate 用补色替换每个像素
-page geometry 图像画布的尺寸和位置(设置)
-pointsize value 字体磅值
-profile filename 添加、删除或应用图像配置文件
-quality value JPEG/MIFF/PNG 压缩级别
-quantize colorspace 在此色彩空间中减少图像颜色
-quiet 抑制所有警告信息
-red-primary point 色度红原色点
-regard-warnings 重视警告信息
-respect-parentheses 设置在括号边界之前保持有效
-rotate degrees 对图像应用 Paeth 旋转
-sampling-factor geometry 水平和垂直采样因子
-scene value 图像场景编号
-seed value 为新的伪随机数序列设定种子
-set attribute value 设置图像属性
-sharpen geometry 锐化图像
-shave geometry 从图像边缘削去像素
-size geometry 图像的宽度和高度
-stegano offset 在图像中隐藏水印
-stereo geometry 合成两幅图像以创建立体立体视差图
-strip 从图像中剥离所有配置文件和注释
-swap indexes 交换图像序列中的两幅图像
-synchronize 将图像同步到存储设备
-taint 将图像标记为已修改
-thumbnail geometry 创建图像的缩略图
-tile 在图像的横向和纵向上重复合成操作
-transform 对图像进行仿射变换
-transparent-color color 透明色
-treedepth value 颜色树深度
-type type 图像类型
-units type 图像分辨率的单位
-unsharp geometry 锐化图像
-verbose 打印图像的详细信息
-version 打印版本信息
-virtual-pixel method 访问图像边界外像素的方法
-watermark geometry 水印的亮度和饱和度百分比
-white-point point 色度白点
-white-threshold value 强制所有高于阈值的像素变为白色
-write filename 将图像写入此文件