Convertisseur texte vers PNG

Résolu

Bonjour,

J'ai un problème comme et pour toujours.

Je suis à la recherche d'un utilitaire / scripte opensource/gratuit qui pourrait convertir du texte vers une image au format PNG (fond transparent), et cela en masse.

Pour faire simple, j'ai 1000 fichiers texte et chaque fichier texte, je veux les convertir en PNG.

Par exemple :

 ――――――                            ――――                           ――――――

| texte 1,2,3,... |     ――――>   | Logiciel |     ――――>  | PNG 1,2,3,... |

 ――――――                            ――――                           ――――――

J'ai fait beaucoup de recherche et je ne trouve pas de solutions adaptées.

2 réponses

  1. Modérateur

    Bonjour,

    En Python on pourrait développer un script sur la base de :

    from PIL import ImageDraw
    from PIL import Image
    from PIL import ImageFont
    
    #Création de l'image.
    img = Image.new('RGB', (1000,100), (0,255,0))
    fontForImg = ImageFont.truetype("Roboto-Light.ttf", 25)
    draw = ImageDraw.Draw(img)
    texte = "Je veux créer une image à partir d'un texte"
    draw.text((10, 10),texte,(0,0,0),font=fontForImg)
    img.save("Out.png")

    qui donne

    On peut aussi utiliser le logiciel ImageMagick j'ai téléchargé une version windows portable, mais c'est d'abord un logiciel Linux, et avec le texte de ta question dans un fichier texte.txt, et la commande

    convert TEXT:texte.txt texte.png

    on obtient


    0
    1. Merci,

      J'aime bien ce que tu me proposes :D
      Je vais me documenter sur PIL qui m'a l'air assez puissant.
      Je ne connais pas bien python, se sera pour moi une bonne occasion d'y regarder un peu de plus près

      0
    2. Mais en fait, y a-t-il moyen de traité par lot avec python ?

      Parce qu'on est d'accord que la valeur texte est une chaîne de caractère, mais si je fais appel à une fonction dans "texte", est-ce que ça fonctionnera toujours ? (déso si je pose des questions idiotes, je ne suis pas à l'aise avec python)

      0
    3. Modérateur
      @BenjaminA2mains

      Disons que pour qui aime la technique cela peut être amusant. Après cela va surtout dépendre des textes que tu as. Car il va peut être falloir déterminer la taille de l'image à partir de la taille du texte, générer des retours à la ligne, récupérer une police ttf, ...

      La seconde solution, ou aussi celle de , conviendra mieux à un utilisateur pas spécialement porté sur l'informatique

      0
    4. Modérateur
      @BenjaminA2mains

      une boucle for sur une liste de fichiers

      files = [file for file in glob.glob('E:\\Artistes\\**\\*.mp3',recursive=True)]
      print('Nombre de fichiers',len(files))
      for file in files:
         ...

      Python est à la fois un langage de programmation et un puissant langage de script

      0
    5. @jee pee

      Merci beaucoup

      Je ne savais pas que python était aussi étendu

      0
  2. Contributeur

    chalut

    sinon avec irfanview

    i_view32.exe text.txt /convert=text.png

    cia ciao


    0
    1. Bonjour,

      Certes, mais cela ne répond pas à la question: il faudrait placer pour un traitement en lot la ligne de commande irfan view par exemple dans une boucle FOR d'un batch de sorte à ce que "text.txt" soit une variable qui prend successivement les différents noms des fichiers texte du ou des dossiers à traiter.

      0
    2. Contributeur
      @brucine

      chalut

      i_view32.exe *.txt /convert=*.png

      bon dim

      cia ciao

      0
    3. Merci

      J'irai voir irfan si j'ai trop de mal avec python ;)

      0