【问题标题】:Imagemagick command line, combine two different sized imagesImagemagick 命令行,组合两个不同大小的图像
【发布时间】:2012-07-13 19:46:59
【问题描述】:

我想使用 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

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

保罗

【问题讨论】:

    标签: command-line imagemagick


    【解决方案1】:

    回答我自己的问题(感谢www.imagemagick.org 上的聪明人)

    convert \
      trans_alpha.png shadow.png \
     -flip \
     -background none \
     -mosaic \
     -flip \
      result.png
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 谢谢,有趣的替代方案,但(理想情况下)我想要一个基于 Imagemagick 的解决方案,而不必编写脚本/程序来做我想做的事。当然,如果我不研究 PBM,这对很多事情来说都是一个有用的想法,再次感谢。
      • 转换 trans_alpha.png shadow.png -flip -background none -mosaic -flip result.png
      【解决方案3】:

      我目前无法测试,但您可以将-page 与图层一起使用,这样可能会起作用,但您可能需要计算 Y 偏移:

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

      你可能不需要 -background none

      【讨论】:

      • 谢谢@Bonzo,我已经尝试过了(有/没有“-background none”),但无论我给它什么价值,偏移似乎都没有影响(我正在尝试“- 0-0" 之前) - 总是相同的最终结果。
      • 你需要把 -page 放在 "shadow.png" 之前。
      猜你喜欢
      • 1970-01-01
      • 2012-03-01
      • 2019-04-19
      • 2016-05-21
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多