2017-10-07 6 views
2

J'essaie d'utiliser python et de comprendre les dessins SVG. Je voudrais que python se comporte comme un script java et obtienne des informations de SVG. Je comprends qu'il peut y avoir 2 types d'informations en SVG.Traitement de SVG en Python

  1. informations basé sur XML - tels que elementbyID, elementbyTagNames
  2. informations structurelles - des informations de position en prenant des transformations pour compte aussi - comme getelementfrompoint, getboundingbox

J'ai cherché et trouvé des bibliothèques python telles comme lxml pour le traitement de xml dans svg. J'ai aussi trouvé des bibliothèques comme svgpathtools, svg.path, mais si je comprends bien, elles ne traitent que des éléments svgpath.

Donc ma question est,

  1. Y a-t-il des bonnes bibliothèques de traitement prennent en charge svg en python? (Similaire au script java)

Répondre

0

Je ne pense pas que ce soit faisable. Je vous dirigeais vers une réponse à propos de rendant SVG avec Python - mais après tout ce que vous avez, c'est des pixels.

Extraire des informations de position à partir de données SVG à des points arbitraires entre les transformations est probablement quelque chose de seulement mis en œuvre dans les navigateurs eux-mêmes. Vous aurez probablement deux options: utiliser un navigateur sans écran et selenium/splinter pour charger vos données SVG dans un vrai navigateur et lancer des instructions javascript, ou faire fonctionner votre code Python en Brython, et tout exécuter dans le navigateur. À partir de Brython, vous devriez pouvoir utiliser les appels Javascript comme méthodes de l'objet SVG car il est exposé à Brython lui-même.

+0

Merci. Je suis d'accord avec votre commentaire qu'il y a beaucoup plus de soutien dans le navigateur. Merci aussi de prendre la tête à propos de Brython, puisque je n'en ai jamais entendu parler auparavant. Je vais les utiliser à l'avenir. – user3902003

-1

Commencez votre recherche en visitant www.pypi.org et recherche « svg ". Passez en revue ce qui existe et voyez ce qui convient à vos besoins.

+0

Merci. J'ai vérifié le lien que vous avez envoyé. Je n'ai toujours pas trouvé de bibliothèque python pour traiter toutes les données structurelles SVG (y compris les transformations). Je pense donc à écrire ma propre bibliothèque pour traiter tous ces cas en utilisant certaines fonctionnalités des bibliothèques existantes. J'espère que ce ne sera pas un doublon. – user3902003

0

Essayez d'utiliser Pygal. Il est utilisé pour créer des images interactives .svg.

0

Merci pour toutes les réponses et l'aide. Après avoir lu tous les commentaires et encore plus de recherche sur www, je suis d'accord avec l'idée qu'il y a beaucoup plus de support dans les navigateurs web supportant les scripts Java pour faire face à SVG. J'ai donc décidé d'utiliser JS et d'utiliser python seulement quand il n'y a pas de choix. J'utiliserai cependant des bibliothèques python telles que (https://pypi.python.org/pypi/svgpathtools/1.0.1) je pense. Mais à partir de maintenant, j'ai remis toutes les fonctionnalités SVG au script Java