2012-03-10 134 views
0

我有这段代码。它应该创建一个透明的PNG,但它的输出是黑色背景PNG。在CentOS上。透明PNG imagemagick passthru

<?php 
header('Content-Type: image/png'); 
passthru("convert -background transparent -fill red -pointsize 72 -font TR.Matisse.ITC.TTF -gravity Center label:'Font Test' png:-"); 
?> 

这个完美的作品在Ubuntu终端:

convert -background transparent -fill red -pointsize 72 -font TR.Matisse.ITC.TTF -gravity Center label:'Font Test' png.png 

那么,如何得到它是透明的(而不是有一个黑色的磨砂)通过调用PHP系统命令?

+0

和你的问题是? – vascowhite 2012-03-10 20:56:01

+0

我编辑了问题 – Lupus 2012-03-10 20:57:39

+0

这两个命令字符串以不同的方式结束。这可能是问题吗? – vascowhite 2012-03-10 20:58:59

回答

0

不是ImageMagick的适当透明的命令是:

convert -transparent <SomeColor> -fill red -pointsize 72 -font TR.Matisse.ITC.TTF -gravity Center label:'Font Test' png.png 

或者使用一个Alpha通道:

convert -alpha transparent -fill red -pointsize 72 -font TR.Matisse.ITC.TTF -gravity Center label:'Font Test' png.png 
+0

以及在命令行'convert -background transparent -fill red -pointsize 72 -gravity中心标签:“字体测试”C:\ wamp \ www \ xxyyzz.png' 作品但不是在php – Lupus 2012-03-12 10:18:24

+0

是的,但是这个命令是在CentOS服务器的命令行还是在Ubuntu下运行? – davidethell 2012-03-12 13:16:36

+0

它在dos,CentOS,Ubuntu甚至OpenSUSE上工作:) – Lupus 2012-03-12 16:28:01

0

执行exec()并将文件保存到磁盘,然后看是否尝试这是正确的形象。你可能会发现这个问题是与PHP和passthru。