2012-03-10 119 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。