2016-12-07 1 views
1

J'ai rencontré beaucoup de questions similaires. Je n'ai pas trouvé de réponse à mon problème. J'ai une image svg. J'essaie de le convertir en une image png.La conversion de svg en png génère une image vide

J'utilise une image 300dpi comme background de svg image.Now je l'ai changé en 600dpi. Après cela, imagick renvoie une image png vide.

  $svg=path to svg;    
      $im = new Imagick(); 
      $im->readImageBlob($svg); 
      $im->setImageFormat("png32"); 
      $im->setImageCompressionQuality(100); 
      $im->resizeImage(720, 445, imagick::FILTER_LANCZOS, 1); 
      $base64=base64_encode($im); 
      $im->clear(); 
      $im->destroy(); 
      return 'data:image/jpg;base64,' . $base64; //returns blank png 

Que manque-t-il ici? Dois-je inclure des bibliothèques?

PHP VERSION: 7

imagick VERSION: ImageMagick 6.8.9-9

Répondre

0

regardant la documentation de Imagick::readImageBlob

Reads image à partir d'une chaîne binaire

cela semble pas t la méthode correcte pour lire à partir d'un chemin de fichier. Vous devez utiliser soit Imagick::readImage

Reads image depuis un fichier

$im = new Imagick(); 
$im->readImage($svg); 

ou le constructeur Imagick::__construct

Imagick::__construct (mixed $files) 

crée une instance Imagick pour une image spécifiée ou un ensemble d'images .

$im = new Imagick($svg); 
+0

Ne fonctionne toujours pas. – NID