1

我想使用 Imagemagick 的“转换”(或其他)来组合两个不同大小的图像。我希望它们在左下角对齐。例如,我有两个图像:

trans_alpha.png (一个透明的 42x37 空白图像)和 shadow.png (一个 68x23 图像,我想覆盖在左下角对齐的 trans_alpha.png 上)

我想要的结果是 68x37 图像,注意这些尺寸只是示例,我不想将尺寸放入命令行,我只想使用输入图像中的尺寸。

我尝试了很多组合但没有成功:

尝试没有。776(关闭,但与左上角对齐,而不是左下角)..:

convert trans_alpha.png -background none shadow.png -gravity SouthWest -layers merge  +repage result.png

尝试没有。841(正确对齐,但结果图像不够宽)...

convert trans_alpha.png shadow.png -gravity SouthWest -composite result.png

希望这是有道理的。谢谢,

保罗

4

3 回答 3

2

回答我自己的问题(由www.imagemagick.org上的聪明人提供)

convert \
  trans_alpha.png shadow.png \
 -flip \
 -background none \
 -mosaic \
 -flip \
  result.png
于 2012-06-12T09:07:49.970 回答
1

Imagemagick 包含许多有用的转换,但有时它仍然缺少您需要的转换。由于您的原始图像是 PNG 无损位图,因此您可以将两者转换为长格式 PBM 或长格式 PPM 等相关格式。这些形式的优点是它们以纯文本逐个像素地表示整个图像,人们可以编写一个程序——通常是一个相当短的程序——来处理人们喜欢的任何方式。作为存储格式,PBM 和 PPM 效率极低,但它们同样极易操作,而这正是您想要的。

pbm(5) 手册页(例如在软件包中的 Debian/Ubuntu 系统上可用netpbm)写得很好,并清楚地解释了该过程。

于 2012-06-06T00:29:50.400 回答
0

我目前无法测试,但您可以使用-page图层,因此类似这样的方法可能有效,但您可能需要计算 Y 偏移量:

convert \
   trans_alpha.png \
  -background none \
   shadow.png \
  -page +0+10 \
  -layers merge \
  +repage \
   result.png

您可能不需要 -background none

于 2012-06-06T09:44:43.683 回答