【问题标题】:ImageMagick: lay a partly transparent tile over an imageImageMagick:在图像上放置一个部分透明的瓷砖
【发布时间】:2011-08-18 16:25:05
【问题描述】:

我有一个 wallpaper.jpg(大小:1920x1280)和一个部分透明的 tile.gif(大小:16x16)。

在一个网站上,我希望将图块作为 x 和 y 重复覆盖在墙纸上。

目前,这个叠加层是使用 CSS 实现的。我想保存一个请求并使用 ImageMagick 将(重复的)tile.png 与 wallpaper.jpg 合并。无论如何,wallpaper.jpg 都是通过 ImageMagick 生成的。

按照Documentation of the -tile option,我想出了以下命令:

convert wallpaper.jpg -size 1920x1280 tile:tile.gif -compose over -composite result.jpg

然而,结果是一个 1920x1280 的 jpg 充满了瓷砖,但没有透光的壁纸。相反,瓷砖的透明部分似乎是白色的。

文档说:

如果平铺图像部分透明,则需要指定“Over”“-compose”方法。

那怎么了?

我也尝试过 -flatten 而不是 -composite...同样的结果。

编辑: 我意识到,还有another -tile option documentation。它似乎遵循了重载的概念。不幸的是,我不知道如何正确使用它。

【问题讨论】:

    标签: image-processing imagemagick


    【解决方案1】:

    这应该可以解决问题:

    convert wallpaper.jpg -background none -size 1920x1280 tile:tile.gif -composite result.jpg
    

    (您也可以添加-compose over,但这应该没什么区别)。

    【讨论】:

      【解决方案2】:

      不确定它是否会有所帮助,但您是否尝试过将 tile.gif 转换为具有 Alpha/透明度的 24 位 PNG 文件? - 从头开始​​......

      我找到了一些示例,但不确定完整的命令行:

      composite -tile tile.gif netscape: wallpaper.jpg
      

      来源:http://www.imagemagick.org/Usage/compose/#tile

      【讨论】:

      • 我也试过了。即使瓦片是具有透明度的 PNG 并且输出文件也是 PNG,结果是重复的瓦片具有白色而不是透明度
      猜你喜欢
      • 2014-01-25
      • 2014-12-03
      • 1970-01-01
      • 2020-05-31
      • 2016-03-12
      • 1970-01-01
      • 2016-06-12
      • 2021-10-22
      • 2019-02-10
      相关资源
      最近更新 更多