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