2014-05-23 6 views
0

HTML 문자열에서 PHP를 통해 svg 이미지로 변환하려고합니다. 내가 무슨 내 실수를 모르는HTML-Domnode의 SVG Imagick

no decode delegate for this image format `/tmp/magick-ao323XDs' @ error/svg.c/ReadSVGImage/2871\n 

:

$im = new Imagick(); 
$svgNode = "<?xml version='1.0' encoding='UTF-8' standalone='no'?><svg id='mySVG' xmlns='http://www.w3.org/2000/svg' version='1.1'><g id='viewport'></g></svg>"; 
$im->readimageblob($svgNode); 

만이 3 선에 오류가 발생합니다. xml은 거기에 있습니다, svg는 내가 할 수있는 가장 단순한 것입니다 ^^.

답변

0

이미지를 실제로 처리하는 Imagick의 라이브러리 ImageMagick은 너비 및 높이 속성을 통해 SVG 이미지의 크기를 설정해야합니다. 작동 방식 :

$im = new Imagick(); 
$svgNode = "<?xml version='1.0' encoding='UTF-8' standalone='no'?> 
<svg id='mySVG' xmlns='http://www.w3.org/2000/svg' version='1.1' width='158px' height='92px'> 
<g id='viewport'></g> 
</svg>"; 
$im->readimageblob($svgNode); 
+0

안녕하세요. 이 예제에서는 이제 작동합니다. requestpayload에서 urlencoded로 오는 데이터는 작동하지 않습니다. 이것은 URL 인코딩 된 것입니다. PHP에서는 다음과 같이합니다 : $ request_body = file_get_contents ('php : // input'); $ im = new Imagick(); $ svgNode = substr ($ request_body, 8); $ im-> readimageblob (urldecode ($ svgNode)); 예외 abgefangen :이 이미지 형식에 대한 디코딩 대리자가 없습니다. ''@ error/blob.c/BlobToImage/ – dobberph

+0

@dobberph 유효한 SVG 또는 XML이 아닙니다. 오프닝 SVG 블록에 잘못된 세미콜론이 있습니다. – Danack