2012-01-27 17 views
0

我正在運行ImageMagick 6.7.4-0和Imagick 3.0.1。爲什麼我從SVG中讀取ImageMagick/Imagick設置時總是崩潰?

我擁有SVG所需的所有代表(輸出convert -list configure | grep DELEGATES顯示bzlib djvu fontconfig freetype gvc jpeg jng jp2 lcms lqr openexr png rsvg tiff x11 xml wmf zlib)。

下面是一些示例PHP代碼到一個非常簡單的SVG轉換成PNG:

$file = 'baseball.svg'; 
$im = new Imagick(); 
$im->readImage($file); 
$im->setImageFormat("png32"); 
header("Content-Type: image/png"); 
print $im->getImageBlob(); 

我從服務器503響應; PHP什麼都不報告並且什麼都不記錄我已啓用所有PHP錯誤,啓用顯示錯誤,啓用日誌錯誤等,我可以從.png轉換爲.jpg和所有這些都很好。

還有一個重要的提示 - 我可以在這臺服務器上使用SVG幾個月,但是我必須將ImageMagick從6.6.x升級到6.7.x才能獲得與文本相關的一些錯誤失真。我第一次嘗試最新版本(6.7.4-10),但無法獲得任何轉換工作,所以我降級到6.7.4-0和所有轉換除了SVG再次工作。我只是無法分類這一個!

編輯:在Ubuntu 10.04上運行。服務器是Litespeed 4.0.10。

編輯2:我剛剛發現此代碼 - 命令行(php test.php運行時 - 實際上並創建從.SVG完美的巴紐,即使它報告「分段故障」。從瀏覽器運行此腳本不會生成任何文件。

$file = 'baseball.svg'; 
$im = new Imagick(); 
$im->setBackgroundColor(new ImagickPixel('transparent')); 
$im->readImage($file); 
$im->setImageFormat("png32"); 

$fp = fopen(time() . '.png', 'w'); 
fwrite($fp, $im->getimageblob()); 
fclose($fp); 
+0

我假設你正在運行linux - 哪個發行版? – Crontab 2012-01-27 19:26:53

+0

好問題!讓我修改主要問題... – 2012-01-27 19:35:34

回答

0

我試圖ImageMagick的6.7.x與Imagick版本的每一個組合一起,沒有運氣(總是出現segfaults,但PHP命令行能夠創建文件至少)

我試圖ImageMagick的6.6.x每一起Imagick版本的組合,仍然沒有運氣(總是segfaults,命令行PHP無法創建任何東西)。

我嘗試添加ImageMagick的所有必需和建議的依賴關係,但仍然沒有運氣。

我刪除了Imagick,卸載ImageMagick,然後運行apt-get install libmagickcore3-extra imagemagick --fix-missing。然後跑pecl install imagick-3.0.1

瞧,一切按預期工作但回到我是在我試圖升級ImageMagick的。我似乎無法在Ubuntu上獲得ImageMagick/Imagick的自編譯版本,完全支持SVG。

1

機會是你沒有實際RSVG安裝二進制包。

+0

請參閱編輯#2。這仍然是可能的嗎?另外,在昨天升級ImageMagick之前,我能夠轉換SVG。 – 2012-01-27 19:39:27

+0

我剛剛運行'apt-get install librsvg2-bin',結果發現librsvg2-bin沒有安裝在服務器上。但是,似乎沒有任何效果。 試圖安裝'librsvg2-2'和'librsvg2-dev',但已經有最新版本。然後我安裝了'libxml2-dev',我沒有_not_。似乎沒有改變任何東西。 – 2012-01-27 19:47:23

+0

@CharlieS:我不幸想到其他很多東西 - 我廣泛使用Imagemagick(和Ghostscript),並在Debian環境中(所以,你知道,接近Ubuntu),但我1)停止嘗試使用可怕的記錄的PHP擴展很久以前,2)從源代碼下載和編譯Imagemagick和Ghostscript。我強烈建議避免PHP的Imagemagick實現,並堅持進行shell調用。 Imagemagick(本身)有驚人的文檔和一個偉大的社區。 – Crontab 2012-01-27 20:42:39

相關問題