IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[imagick] convertir svg en png


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 274
    Par défaut [imagick] convertir svg en png
    Bonjour à tous,

    J'ai un petit soucis avec Imagick pour convertir un fichier qui contient du code svg en image png.
    Je met le fichier svg en pièce jointe (j'ai juste modifier l'extension svg en txt pour le joindre)

    Tout d'abord j'ai installer et j'ai donc bien les extensions :
    ImageMagick supported formats : PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8
    J'ai tester le fichier svg directement dans le navigateur, l'image s'affiche bien dans les navigateur
    Mais quand je passe par imagick j'obtiens une belle erreur.

    Voici le code php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    $usmap = 'temp/temp.svg';
    $im = new Imagick();
    $svg = file_get_contents($usmap);
    $im->readImageBlob('<?xml version="1.0" encoding="UTF-8" standalone="no"?>'.$svg);
    $im->setBackgroundColor(new ImagickPixel('transparent'));  
    $im->setImageFormat("png32");
    $im->writeImage('temp/image.png');/*(or .jpg)*/
    $im->clear();
    $im->destroy();
    ?>
    Et j'obtiens l'erreur :
    Uncaught ImagickException: no decode delegate for this image format `SVG' @ error/blob.c/BlobToImage/353
    Malheureusemenr rien n'y fait, impossible d'obtenir l'image en png.

    Je crée des pdf à la volé pour des rapports, et j'aimerais donc convertir les graphique svg en png afin de les inclure dans le pdf.

    Si d'autres solution existe, je suis preneur.

    D'avance merci de votre participation
    Spliffer
    Fichiers attachés Fichiers attachés

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 160
    Par défaut
    je fais pas de php mais readImageBlob attend une chaine binaire, file_get_contents stocke dans une chaine de caractères.

    moi, j’essaierais avec readImage à la place de readimageBlob.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 274
    Par défaut
    Bonjour et merci pour votre participation.

    J'ai utilisé readImage à la place de Blob

    J'ai une autre erreur maintenant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    $usmap = 'temp/temp.svg';
    $im = new Imagick();
    $svg = file_get_contents($usmap);
    $im->readImage('<?xml version="1.0" encoding="UTF-8" standalone="no"?>'.$svg);
    $im->setBackgroundColor(new ImagickPixel('transparent'));  
    $im->setImageFormat("png32");
    $im->writeImage('temp/image.png');/*(or .jpg)*/
    $im->clear();
    $im->destroy();
    ?>
    Uncaught ImagickException: unable to open file `/tmp/magick-27915NNQ1qIQuxl10': No such file or directory @ error/constitute.c/ReadImage/544
    A savoir que le répertoire temp est en chmod 755, et je suppose "magick-27915NNQ1qIQuxl10" est un nom d'image créer temporairement le but étant d'obtenir le nom de fichier "image.png".
    Dès lors je ne vois pas quoi faire

    D'avance merci de l'aide que vous pourriez m'apporter
    Bien à vous
    Spliffer

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 274
    Par défaut
    J'avance :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    $usmap = '/var/www/html/temp/temp.svg';
    $im = new Imagick();
    $svg = file_get_contents($usmap);
    $im->readImage('<?xml version="1.0" encoding="UTF-8" standalone="no"?>'.$svg);
    $im->setBackgroundColor(new ImagickPixel('transparent'));  
    $im->setImageFormat("png32");
    $im->writeImage('/var/www/html/temp/image.png');/*(or .jpg)*/
    $im->clear();
    $im->destroy();
    ?>
    J'ai donc mit le chemin en absolu au lieu de relatif

    Maintenant j'ai cette erreur :
    Uncaught ImagickException: WriteBlob Failed `var/www/html/temp/image.png' @ error/png.c/MagickPNGErrorHandler/1628

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 274
    Par défaut
    Bonjour à tous,

    J'ai laisser tombé l'idée du script php, je passe par exec ou exec_shell, mais là je pense avoir un problème de droit car j'ai un message de confirmations mais pas le fichier image, mais bon là on est plus sur un problème user linux, je vais donc reposter dans le bon forum et clôturer celui-ci pour pas polluer avec des hors sujet.

    Bonne journée à tous
    Spliffer

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Imagick] Convertir plusieurs images png en un fichier pdf
    Par fafabzh6 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 12/10/2011, 19h34
  2. [Images] Convertir SVG en PNG
    Par Lulu_n10 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 25/07/2010, 14h23
  3. [Imagick] Convertir pdf en jpg (ou png ou gif)
    Par omman95 dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 19/09/2009, 11h36
  4. Convertir SVG en PDF
    Par mlaiti dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 14/11/2007, 10h53
  5. conversion du svg au png
    Par faten85 dans le forum Multimédia
    Réponses: 3
    Dernier message: 19/04/2007, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo