Générer des images de texte multilingues à l'aide de Python

Lisez des textes de différentes langues à partir d'Excel et générez des images.

À titre d'exemple, l'image suivante est générée. فارسی.png

Un exemple d'exécution est publié sur ipython notebook.

Liste des langues

arabe catalan Anglais espagnol persan français italien coréen < th> russe suédois thaï ukrainien chinois
العربية Català Anglais Español فارسی Français Italiano 한국어 Русский Svenska ไทย Українська Chinois
التعلم المتعمق Aprenentatge profund Apprentissage en profondeur Aprendizaje profundo یادگیری عمیق Deep learning Apprendimento approfondito 딥 러닝 Глубинное обуче Apprentissage en profondeur d> การ เรียน รู้ เชิง ลึก Глибинне навчання Études de profondeur

scénario

python


from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
import numpy as np
import pandas as pd

#Load text list
df = pd.read_excel('example_words.xlsx', sheetname='Sheet1')
indices = df.columns.tolist()

#Generate text images
def generate_text_img(text, fontname='Arial', fontsize=64):
    font = ImageFont.truetype(fontname, fontsize, encoding="utf-8")
    img_size = np.ceil(np.array(font.getsize(text))*1.1).astype(int)
    img=Image.new('L', img_size, 'white')
    draw = ImageDraw.Draw(img)
    text_offset = (img_size - font.getsize(text))/2
    draw.text(text_offset, text, font=font, fill='#000')
    return img
    
fontname = '/Library/Fonts/Arial Unicode.ttf'
for index in indices:
    for text in df[index]:
        txt_img = generate_text_img(text, fontname=fontname, fontsize=64)
        txt_img.save(text+'.png', 'png')

référence

Recommended Posts