J'utilise les liaisons Python L'image ne figure pas dans le fichier final (le reste du SVG rend tout simplement bien). Le chemin relatif est correct sur la base de l'exécution du script, mais je suppose qu'il y a un problème avec le fait qu'il s'agirait normalement d'une URL relative, et non d'un fichier de fichier relatif. Comment puis-je contourner cela? P> p> RSVG CODE> pour rendre une image SVG au Caire et enregistrer dans le fichier, qui fonctionne principalement. Mais si le fichier SVG contient une image liée, comme:
4 Réponses :
La réponse était de traiter les liens pour commencer par fichier: /// code> et être un chemin absolu complet. P>
N'a pas aidé pour moi :(. Cela fonctionne sur une autre machine avec la même version de Librsvg. Pas sur cette machine Archlinux, cependant. Même compilé RSVG-Convertir moi-même.
Même problème (en utilisant OSX 10.9)
Il semble que, si le fichier dont vous y comprendez n'est pas sur le même chemin ou sous le chemin du fichier SVG que vous souhaitez convertir, il ne le trouvera pas. Je considère cela comme un bogue. P>
Une «fonctionnalité de sécurité», je suppose. J'ai regardé la source et il n'y a aucun moyen de le désactiver à court de recompiler. Juste une note que cela a fonctionné sur Ubuntu 10.04, mais sur 12.04, cette "fonctionnalité" a été ajoutée.
Il existe de nombreux facteurs qui doivent être satisfaits pour Librsvg pour permettre la chargement d'une ressource d'image. À partir de V2.40, celles-ci incluent:
xlink: href code> attribut li>
- Cet attribut doit contenir un URI complet et valide li>
- Le schéma peut être
data: // code> ou fichier: // code> li>
-
Fichier: // code> Les chemins doivent être absolus li>
-
Fichier: // code> Les chemins doivent être dans ou en dessous du chemin du fichier source SVG (après que tous les symboles ont été déréférencés) li>
ul> Notez que si l'entrée est transmise à rsvg-convert code> via STDIN, aucun tracé ne compte comme sous-répertoires du fichier d'entrée et de tous les fichiers : // code> Les images seront refusées. p> xxx pré> Le code régissant la résolution de l'URL d'image peut être trouvé dans le libresvg source dans rsvg-base.c code>, fonction _rsvg_handle_allow_load code>. p> Pour ajouter une notification de débogage à RSVG -converti lorsque le chargement de l'image échoue, on peut ajouter p> xxx pré> à config.h code> dans la source et recompiler. p> p> p>
Pour mettre à jour cela, les règles sont désormais définies dans le fichier autorisé_url.rs, disponible ici: gitlab.gnome.org/gnome/librsvg/blob/master/rsvg_internals/sr c / ...
Je voulais obtenir le rendu des images de Librsvg travaillant sur mon Mac pour accélérer le rendu SVG. La grande réponse de Ian MacKinnon a tous les ingrédients, mais la mise en œuvre d'une modification de la bibliothèque est délicate. Ces étapes ont fait des images de Librsevg de manière correcte avec des chemins relatifs. J'espère que cela sauver quelqu'un un peu de temps.
Premier, j'ai installé Librsvg à l'aide de: p> au moment de la rédaction, cela installe la version 2.40.13 et les bibliothèques nécessaires à construit le. J'ai ensuite téléchargé et extrait l'archive source dans mon répertoire d'origine: p> J'ai édité le _rsvg_handle_allow_load code> fonction dans
rsvg-base.c Dans ce répertoire pour contourner le chemin de chargement des restrictions en ajoutant ce code autour de la ligne 2275: P>
convert test.svg test.png
J'ai le même problème. Mettre une URL invalide HREF (lien vers un fichier n'existe pas) révèle que RSVG ne sortira pas une erreur s'il ne trouve pas le fichier.