2012-10-05 79 views
0

我無法弄清楚爲什麼我無法從svg轉換爲圖像。PHP imagick convert svg to image issue

系統:

Windows 2008 Server 
II7 
PHP 5.3.10-  Imagick is installed 

代碼

$command = 'C:\imagemagick\convert.exe d:\path-to-svg-file\sample.svg d:\path-to-output-folder\sample.png 2>&1'; 

exec($command, $output); 

ERROR

array(2) { 
    [0]=> string(102) "convert.exe: Must specify image size `C:/Windows/TEMP/magick-PY5hNkFu' @ error/mvg.c/ReadMVGImage/185." 
    [1]=> string(126) "convert.exe: no images defined `d:\inetpub\...\output\sample.png' @ error/convert.c/ConvertImageCommand/3044." 
} 

回答

0

你必須指定尺寸:

convert -size 568x604 d:\tiger.svg d:\tiger.jpg 

約SVG爲其它圖像格式

convert file.svg file.png 

我試着轉換成PNG什麼,但有同樣的問題與JPG格式

+0

C:\ imagemagick \ .. \ convert.exe -size 400x200「d:\ inetpub \ ... \ svg \ sample.svg」「d:\ inetpub \ ... \ sample.png」我添加了大小並且該錯誤消失了,但現在我得到一個空的圖像(sample.png 1kb)。 – eBranna

+0

你可以在這裏粘貼你的命令,以便我可以檢查什麼是錯的? – Rush

+0

'C:\ imagemagick \ convert.exe -size 300x300「d:\ inetpub \ path-to-svg-file \ sample.svg」「d:\ inetpub \ path-to-output-flderg \ output \ sample.png 「' – eBranna

0

SVG圖像是矢量。它們沒有固有的尺寸,只需指示要劃出的線條和位置。 imagemagic希望你告訴你目標圖像的大小,以像素爲單位,它應該爲你生成。它應該製作一張100x100的照片嗎?一個999,999,999x999,999,999?這些都不包含在svg細節中,所以你必須提供它。

+0

是的SVG是一個矢量圖形。但是,這裏有什麼是令人困惑的:一,相同的代碼從命令行工作,並在我的本地機器工作,當我在PHP腳本運行exec(windows7,wamp服務器),也適用於當我使用imagick類進行轉換。二,svg在其父節點有一個寬度和高度,我認爲正在使用。 – eBranna