में कनवर्ट करते समय घातक त्रुटि मैं एसवीजी टेक्स्ट को पीएनजी छवि में परिवर्तित करने के लिए PHP के साथ छवि-मैजिक का उपयोग करने की कोशिश कर रहा हूं। यह एसवीजी NVD3 से उत्पन्न एक चार्ट है और मैं अपने उपयोगकर्ताओं को इसे एक छवि के रूप में डाउनलोड करने की अनुमति देना चाहता हूं।readimageblob: एसवीजी को पीएनजी
असल में, मैं एसएसजी डेटा भेज रहा हूं, जेएसओएन के साथ PHP हैंडलर को एन्कोड किया गया है जिसे इसे पीएनजी छवि के रूप में आउटपुट करना है।
लेकिन, इस निम्न त्रुटि निकलती है:
<?php
/* Derived in part from: http://stackoverflow.com/a/4809562/937891 */
$svg=json_decode($_REQUEST["svgData"]);
$im=new Imagick();
$im->readImageBlob($svg);
$im->setImageFormat("png24");
header("Content-Type: image/png");
$thumbnail = $im->getImageBlob();
echo $thumbnail;
?>
एचटीएमएल:
<form id="exportSpendTrendTrigger" method="POST" action="svg2png.php" target="_blank">
<input id="exportSpendTrendSvgData" type="hidden" name="svgData" />
<input type="submit" class="btn" value="Export" />
</form>
<div id="spendtrend">
<svg></svg>
</div>
छवि परिवर्तित करने के लिए
Fatal error: Uncaught exception 'ImagickException' with message 'no decode delegate for this image format `' @ blob.c/BlobToImage/347' in svg2png.php:4 Stack trace: #0 svg2png.php(4): Imagick->readimageblob('
PHP स्क्रिप्ट jQuery:
exportSpendTrend = function (e) {
//Show the user the PNG-image version for download
$("#exportSpendTrendSvgData").val(JSON.stringify($("#spendtrend").html().trim()));
}
$("#exportSpendTrendTrigger").on("submit", exportSpendTrend);
उदाहरण एसवीजी, NVD3 द्वारा उत्पन्न: http://pastebin.com/Z3TvDK16
यह
अधिकतर आपके इमेजिक इंस्टॉल में सही प्रतिनिधि गायब है। देखें [छवि मैगिक एसवीजी को पीएनजी में कनवर्ट करें जो आरएसवीजी सक्षम के साथ काम नहीं कर रहा है] (http://stackoverflow.com/q/11592085) –