一、文字横向排列
import os
from io import BytesIO
from PIL import Image, ImageFont, ImageDraw
import pygame
import random
pygame.init()
font = pygame.font.Font(os.path.join("fonts", "全新硬笔楷书简.ttf"),22)
with open("G:\\数据集\\文字图片\\2.txt", "r",encoding='utf-8') as f:
data_str = f.read()
data = list(data_str)
len_file=len(data)
num_words=12
loop_n=int(len_file/num_words)
num_p=607
for i in range(loop_n):
text_list=data[i*num_words:i*num_words+num_words]
text= "".join(text_list)
j=random.randint(0,255)
k=random.randint(0,255)
g=random.randint(0,255)
s=random.randint(0,255)
rtext = font.render(text, True, (0,0,0), (255,255,255))
num_p=num_p+1
path1="G:\\数据集\\文字图片1\\"+str(num_p)+".jpg"
pygame.image.save(rtext, path1)
二、文字纵向排列
from PIL import Image,ImageFont,ImageDraw
import os
with open("G:\\数据集\\文字图片\\2.txt", "r",encoding='utf-8') as f:
data_str = f.read()
data = list(data_str)
len_file=len(data)
num_words=3
loop_n=int(len_file/num_words)
num=488
size_m=22
for i in range(loop_n):
t1=data[i*num_words]
t2=data[i*num_words+1]
t3=data[i*num_words+2]
jj=random.randint(0,255)
kk=random.randint(0,255)
ss=random.randint(0,255)
ss=255
j=0
k=0
g=0
im = Image.new("RGB", (size_m, size_m*3), (kk,ss,jj))
dr = ImageDraw.Draw(im)
font = ImageFont.truetype(os.path.join("fonts", "s1.ttf"), size_m-2)
dr.text((2,2), t1, font=font, fill=(j,k,g))
dr.text((2,size_m*1),t2, font=font, fill=(j,k,g))
dr.text((2,size_m*2),t3, font=font, fill=(j,k,g))
num=num+1
im.save("G:\\数据集\\文字图片\\"+str(num)+".jpg")