我试图将阴影投射到两个图像的合成上:一个JPEG / PNG和一个SVG矢量。使用PNG图像,一切都可以无缝运行。现在,尝试使用JPEG,我得到一个黑色背景,而不是预期的透明背景。
命令如下所示:
convert image.jpeg -background white -flatten \( -background none vector.svg \) -compose CopyOpacity -gravity center -composite \( \+clone -background \#111 -shadow 80x5\+5\+5 \) -background none -compose DstOver -flatten result_from_jpeg.png
我们从这个JPEG开始:
或此PNG:
然后我们组合矢量,因为它是白色的,你将无法看到原始的,所以这里有一个网格:
真正的向量就是这个:http://cl.ly/Xymi/vector.svg
然后我们放下阴影。从PNG开始,我们做对了(透明背景):
但使用JPEG时,背景为黑色:
所有文件都可以通过ZIP格式下载:http://cl.ly/Xz8V/Archive%202014-10-10%20at%2011.34.55%20am.zip
关于可能发生的事情的任何想法?在此先感谢!!
编辑:
我的IM版本:
Version: ImageMagick 6.8.8-9 Q16 x86_64 2014-03-28 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules
Delegates: bzlib freetype jng jpeg lcms ltdl png tiff xml zlib
我在Mac OSX上开发。
答案 0 :(得分:0)
好的问题解决了!! snibgo帮助我完成了ImageMagick论坛。
即使我们无法理解我的设置与尝试过但没有观察到问题的其他人之间的区别,我们确实将命令的阴影部分重构为更正确的方式实际上对两个来源都有效,jpeg和png:
convert image.jpeg -background white -flatten \
\( -background none vector.svg \) \
-compose CopyOpacity -gravity center -composite \
\( +clone -background \#111 -shadow 80x5+5+5 \)
+swap -background None -compose Over -layers merge \ # This is new
correct_output.png
整个讨论可以在这里找到:
http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=26363