テキストファイルを読んで画像に縦書きの日本語文字を入れる方法
方法
from PIL import Image, ImageDraw, ImageFont, ImageFilter
def generate_img(text_line, imgname, filename):
text_x = 100
text_y = 50
fill='black'
fill='red'
direction='ttb'
# direction='rtl'
font_size = 72
font_name = './GN-KillGothic-U-KanaO.ttf'
font = ImageFont.truetype(font_name, font_size)
img = Image.open(imgname)
# img = Image.new('RGB', (500, 500), (128, 128, 128))
# img.putalpha(0)
draw = ImageDraw.Draw(img)
draw.text((text_x, text_y),
text_line,
font=font,
fill=fill,
direction=direction
)
img.save(filename)
def read_file(file_path):
with open(file_path, 'r', encoding='utf-8') as file: # ファイルをUTF-8エンコーディングで読み込み
return file.readlines()
def main():
imgname = 'dwpose.png'
file_path = "a.txt" # 入力ファイル名を固定化
lines = read_file(file_path)
for index, line in enumerate(lines):
line = line.strip()
if line:
# imgname = f"input_folder/"+(str(index).zfill(3))+f".png"
output_filename = f"dat/"+(str(index).zfill(3))+f".png" # 出力ファイル名を固定化
generate_img(line,imgname,output_filename)
print(f"img '{output_filename}' generated successfully!")
if __name__ == '__main__':
main()
固定の画像でもできますが連番の画像ファイルを用意すると個別の画像に文字列入れることができます
透明な背景や単色の背景も指定できます
ディスカッション
コメント一覧
まだ、コメントがありません