2011-08-18 55 views
4

我有一个wallpaper.jpg(尺寸:1920x1280)和一个部分透明的tile.gif(尺寸:16x16)。ImageMagick:在图像上放置部分透明的瓷砖

在一个网站上,我希望将瓦片作为墙纸上的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 

的结果,但是,是一个1920×1280的JPG充满了瓷砖,但没有壁纸闪耀通过。相反,瓷砖的透明部分似乎是白色的。

文档说:

如果平铺图像是部分透明的则“超过”“-compose”方法将需要被指定。

那么,怎么了?

我也试过 - 平坦而不是 - 复合...相同的结果。我知道,也有another -tile option documentation。它似乎遵循重载的概念。不幸的是,我无法弄清楚如何正确使用它。

回答

2

这应该做的伎俩:

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

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

1

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

我发现了一些例子显示,但我不确定完整的命令行:

composite -tile tile.gif netscape: wallpaper.jpg 

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

+0

我也试过。即使当瓷砖是具有透明度的PNG并且输出文件是PNG时,结果也是重复的瓷砖具有白色而不是透明的 – crispy