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

Python Discussion :

Écrire un SVG ou PDF avec python? (possible avec java mais avec python?)


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2019
    Messages : 5
    Par défaut Écrire un SVG ou PDF avec python? (possible avec java mais avec python?)
    Bonjour,

    Designer, ingénieur et artiste, j'utilise beaucoup une version simplifiée de java (Processing) pour dessiner et enregistrer des dessins vectoriels et non des images bitmap.
    Cela me permet de réaliser des découpes numériques, dessiner avec un plotter, et il m'est absolument indispensable d'obtenir des PDF ou SVG. En interrogeant des utilisateurs de Python, je n'ai pas réussi à savoir s'il existait un moyen simple d'écrire des fichiers pour obtenir des images vectorielles (quel que soit le format d'ailleurs), j'imagine que ce ne doit pas être un usage courant chez les développeurs en python.

    Java a ses limites, notamment l'impossibilité de composer des fonctions, ce qui me fait perdre un temps fou, mais ce langage permet de dessiner avec des PVector, des PShape, en créant des formes vectorielles à partir des données de PImage, ainsi que de faire de la typographie, etc. J'ai envie de passer à la vitesse supérieure et me demande comment choisir entre java et python pour apprendre un nouveau langage? J'apprécie la syntaxe élégante et concise de python et je sais que sa maîtrise est une compétence recherchée qui m'ouvrirait de nouvelles perspectives professionnelles. Mais si je ne peux pas obtenir d'images vectorielles, je préfère apprendre java.

    Est-ce que quelqu'un a entendu parler de cette possibilité avec python? S'agit-il d'une librairie, laquelle? (je recherche quelque chose de plus élaboré que drawbot). Merci d'avance pour vos réponses, en espérant avoir été clair.
    Bonne journée/nuit/week-end/semaine!

    Grégoire

    8-)

    PJ: quelques images de réalisation...
    Images attachées Images attachées   

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 770
    Par défaut


    Tu peux continuer à utiliser Processing en Python, si je comprends bien : https://py.processing.org/. Sinon, en Python plus "natif", matplotlib permet de générer des SVG ; la bibliothèque svg.charts t'offre un accès plus bas niveau au SVG (https://pypi.org/project/svg.charts/).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut !

    Une liste de librairies qui pourrait t'intéresser (je n'ai rien testé) :
    https://brachiograph.readthedocs.io/...-linedraw.html
    https://pypi.org/project/pypotrace/
    https://github.com/ianmackinnon/png2svg

    N'ayant qu'un faible niveau en python, mes conseils sont à prendre avec précautions, je pense tout de même qu'il te faudra apprendre un minimum NumPy pour ce que tu souhaites faire.

  4. #4
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 207
    Par défaut
    hello,
    il y a aussi drawsvg
    drawSvg
    A Python 3 library for programmatically generating SVG images (vector drawings) and rendering them or displaying them in a Jupyter notebook.
    Most common SVG tags are supported and others can easily be added by writing a small subclass of DrawableBasicElement or DrawableParentElement.
    An interactive Jupyter notebook widget, drawSvg.widgets.DrawingWidget, is included that can update drawings based on mouse events.

    Install
    drawSvg is available on PyPI:

    $ pip3 install drawSvg

    Nom : example1.png
Affichages : 200
Taille : 19,6 Ko

    et pourquoi ne pas utiliser des logiciels comme GIMP ou Inkscape ?


    Ami calmant, J.P

  5. #5
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2019
    Messages : 5
    Par défaut Merci à tous et réponse à Jurassic Pork
    Je ne sais pas si c'est l'usage de remercier par réponse dans la discussion. Pour répondre à ta question Jurassic Pork: j'ai essayé de me documenter sur Inkscape, j'ai trouvé ça compliqué (surtout pour utiliser quotidiennement Illustrator —je sais c'est mal, mais j'ai pris l'habitude—). Apprendre Python apporterait plus de cordes à mon arc (en dehors de mon usage artistique) et j'aime bien partir de zéro pour développer mes outils, question d'esthétique :-) personnelle...
    Amicalement vôtre,

    Grégoire

  6. #6
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2019
    Messages : 5
    Par défaut
    Merci,

    En fait je ne cherche pas à convertir des images en vecteurs, mais bien à dessiner des formes paramétriques from scratch. Merci pour les liens, c'est sympa! Au-revoir, G

    Citation Envoyé par LeNarvalo Voir le message
    Salut !

    Une liste de librairies qui pourrait t'intéresser (je n'ai rien testé) :
    https://brachiograph.readthedocs.io/...-linedraw.html
    https://pypi.org/project/pypotrace/
    https://github.com/ianmackinnon/png2svg

    N'ayant qu'un faible niveau en python, mes conseils sont à prendre avec précautions, je pense tout de même qu'il te faudra apprendre un minimum NumPy pour ce que tu souhaites faire.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2019
    Messages : 5
    Par défaut ça a l'air top, merci! (jai l'embarras du choix maintenant)
    Pour répondre à ta question Jurassic Pork: j'ai essayé de me documenter sur Inkscape, j'ai trouvé ça compliqué (surtout pour utiliser quotidiennement Illustrator —je sais c'est mal, mais j'ai pris l'habitude—). Apprendre Python apporterait plus de cordes à mon arc (en dehors de mon usage artistique) et j'aime bien partir de zéro pour développer mes outils, question d'esthétique :-) personnelle...

    Citation Envoyé par jurassic pork Voir le message
    hello,
    il y a aussi drawsvg



    Nom : example1.png
Affichages : 200
Taille : 19,6 Ko

    et pourquoi ne pas utiliser des logiciels comme GIMP ou Inkscape ?


    Ami calmant, J.P

  8. #8
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2019
    Messages : 5
    Par défaut Merci!
    Python Py ne permet pas de composer des fonctions... je pense que c'est du faux python.

    Citation Envoyé par dourouc05 Voir le message


    Tu peux continuer à utiliser Processing en Python, si je comprends bien : https://py.processing.org/. Sinon, en Python plus "natif", matplotlib permet de générer des SVG ; la bibliothèque svg.charts t'offre un accès plus bas niveau au SVG (https://pypi.org/project/svg.charts/).

  9. #9
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 207
    Par défaut
    hello,
    il existe l'équivalent de processing en python c'est p5 :
    p5 is a native Python port of the Processing API by Abhik Pal, Manindra Mohrarna, and contributors. Processing “is a flexible software sketchbook and a language for learning how to code within the context of the visual arts.” It mainly developed in Boston (at Fathom Information Design), Los Angeles (at the UCLA Arts Software Studio), and New York City (at NYU’s ITP) [1].
    Et puis Inkscape permet d'utiliser des scripts en python pour générer des objets en svg. (avec l'extension Simple Inkscape Scripting).
    Exemple : Avec ce script en python :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    rad = 20
    edge = 3
     
    style(fill_opacity=0.5)
    for r in range(edge):
        for c in range(edge):
            circle((c*rad*2 + rad, r*rad*2 + rad), rad, fill='red')
    for r in range(edge - 1):
        for c in range(edge - 1):
            circle((c*rad*2 + rad*2, r*rad*2 + rad*2), rad, fill='yellow')
    J'obtiens ceci :

    Nom : g1225.png
Affichages : 129
Taille : 66,4 Ko


    Le fichier svg est en pièce jointe accompagné d'un svg animé pour le fun (ouvrir les fichiers svg dans un navigateur).

    Ami calmant, J.P
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 19/07/2020, 15h20
  2. extaire une image d'un pdf avec python 2.7.6
    Par xunil2003 dans le forum Général Python
    Réponses: 8
    Dernier message: 03/07/2020, 09h24
  3. [Python 2.X] Créer un écrire un fichier de données avec Python ? Pas de CSV ou .txt !
    Par Ben20 dans le forum Général Python
    Réponses: 5
    Dernier message: 16/04/2015, 12h22
  4. lire écrire lister modifier calendrier exchange avec python
    Par raaleur094 dans le forum Bibliothèques tierces
    Réponses: 0
    Dernier message: 09/10/2013, 14h41
  5. Image .jpg dans un ODS PDF avec MVS SAS 9.1, est-ce possible?
    Par DEMMAR dans le forum ODS et reporting
    Réponses: 2
    Dernier message: 21/09/2011, 15h13

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