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

Calcul scientifique Python Discussion :

[PIL] draw text et retour a la ligne.


Sujet :

Calcul scientifique Python

  1. #1
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut [PIL] draw text et retour a la ligne.
    bonjour, a tous
    voilà mon problème est trés simple.
    j'utilise PIL pour créer des images, sur lesquel je met du texte. J'utilise donc la Méthode Draw(). Tout est trés bien sauf que je n'arrive pas a avoir de retour a la ligne.

    j'ai beau mettre : '\r' ou '\n' ou '\n\r', rien n'y fait.
    Auriez vous une suggestion?
    merci

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    et en utilisant la methode split() avec? Ca supprime les espaces au debut et à la fin de la chaine de caracteres.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    j'ai du mal m'exprimer....

    je souhaite passer en draw une chaine comme celle ci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'je ne comprend pas\nle problème'
    cette chaine contient un retour a la ligne...
    mais avec Draw de PIL, le retour a la ligne n'est pas conservé. du coup tout est écrit sur une ligne....

    une idée?!

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    windows a du mal avec les \n et les \r, un genre de bug je pense, surtout visuel dans des logiciels comme eclipse.

    Si tu es sur linux j'ai pas de solutions

    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    en utilisanttu connais la hauteur de ton texte et tu pourra te placer sur la 'ligne' inférieur... si tu vois ce que je veux dire ...
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  6. #6
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    non, ca ne peut pas marcher....
    j'utilise déjà textsize, et c'est pil qui ne reconnait pas les retours a la ligne.

    je continu a chercher.....

  7. #7
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    Je pense qu'il te faut le faire à la main:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    # -*-coding: iso-8859-15 -*-
    import Image, ImageDraw
     
    def draw_text(im, position, texte, *args, **kwargs):
        texte = texte.replace('\r\n', '\n')
        texte = texte.replace('\r', '\n')
        lignes = texte.split('\n')
     
        x, y = position
        try:
    	font = kwargs['font']
        except KeyError:
    	font = None
     
        for ligne in lignes:
            im.text((x,y), ligne,*args, **kwargs)
    	if font:
    	    y += im.textsize(ligne, font=font)[1]
            else:
                y += im.textsize(ligne)[1]
     
     
    if __name__ == "__main__":
     
    	im = Image.new('RGB', (400, 400), color=(255, 255, 255))
    	im_draw = ImageDraw.Draw(im)
    	texte = "ceci est\nun texte\r\nmultiligne...."
    	draw_text(im_draw, (10,10), texte, fill=(255,0,0))
    	im.show()
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  8. #8
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    hummm, merci beaucoup, cela va necessiter une grosse modif dans le code de mon serveur de traitement mais c'est tout a fait ca!.

    merci

  9. #9
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    merci
    Pas de quoi, ma première explication n'était pas vraiment limpide...

    Si tu es joueur, tu peux directement modifier le module ImageDraw , faudra juste y penser lors des mises à jour
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  10. #10
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    c'est une idée...
    je vais voir cela.

    a+
    merci

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 05/07/2007, 02h45
  2. Réponses: 5
    Dernier message: 20/03/2007, 17h07
  3. Retour A La Ligne dans fichier texte /?
    Par Phoenix_Blue dans le forum C++Builder
    Réponses: 3
    Dernier message: 19/01/2007, 15h34
  4. Réponses: 2
    Dernier message: 01/12/2006, 13h28
  5. Retour a la ligne dans un fichier texte
    Par dykkent dans le forum Langage
    Réponses: 2
    Dernier message: 07/03/2006, 18h57

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