J'utilise l'imagick pour convertir svg en png. Mais mon svg contient des images incorporées dedans. donc en le convertissant en png ne rend pas l'image incorporée.svg to png ne fonctionne pas en php
$image = new \Imagick();
try{
$file_name = uniqid($prefix).".jpeg";
$image->readImageBlob($raw_svg);
$image->setImageFormat("png24");
$image->writeImage("$folder_name/".$file_name);
} catch (ImagickException $ex) {
echo $ex->getMessage();
}
SVG données
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="600" height="400" viewBox="0 0 600 400" xml:space="preserve">
<desc>Created with Fabric.js 2.0.0-beta7</desc>
<defs>
</defs>
<rect x="0" y="0" width="600" height="400" fill="#000000"></rect>
<g transform="translate(300.77 141.27) scale(2.45 2.26)">
<text xml:space="preserve" font-family="Dollar2" font-size="22" font-style="normal" font-weight="normal" style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: rgb(255,255,255); fill-rule: nonzero; opacity: 1; white-space: pre;" >
<tspan x="-117.34" y="6.91" >Back Side</tspan>
</text>
</g>
<g transform="translate(289.57 247.98) scale(0.35 0.35)">
<image xlink:href="data:image/png;base64,iVBORw0KGgoAAAANtTyE2NP5d9xZHM0bHtWwv3UYAuCINIplLWR8DS0uSOiTGLf1D2r/s3a8rxSbGLsVX4jt7nWc7JwHa/hqcyfVf6ZPmZ/u79nun+mTHHP6VX+t6lO+PckRyonYcOdqNETPJtLnBs89dwI0s7Y24alIM0g883zrzOP61/GnsT/6p607++djHcyJo6rcpFOQRCyjv8TYAAeI+bBrle9xgAAAABJRU5ErkJggg==" x="-334.5" y="-173.5" style="stroke: rgb(240,240,240); stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: rgb(0,0,0); fill-opacity: 0; fill-rule: nonzero; opacity: 1;" width="669" height="347"></image>
<rect x="-334.5" y="-173.5" width="669" height="347" style="stroke: rgb(240,240,240); stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: none; fill-rule: nonzero; opacity: 1;"/>
</g>
</svg>
me faire savoir si quelque chose manque, je l'ai essayé d'inclure la plupart des détails. – DS9
Les données d'image publiées semblent être corrompues. – ccprog
Pour des raisons de sécurité, de nombreux délégués SVG ne restitueront pas les balises 'image xlink'. Voir [cette réponse] (https://stackoverflow.com/a/29632564/438117) pour obtenir des conseils. – emcconville