fontconv Windows パソコンで動かす
英語にしか対応していないフォントでも、Deep Learningで日本語もそれっぽく生成させる
GitHub – ka10ryu1/fontconv: フォントの生成
手順
git clone https://github.com/ka10ryu1/fontconv
準備
python ./create_dataset.py Font/00_yu_gothic_12pt.png Font/01_Berlin_Sans_FB_12pt.png
python Tools/npz2jpg.py result/test_128x128_000100.npz
python ./train.py
python ./predict.py --gpu 0 result/12mnv2l3.model result/12mnv2l3_train.json Font/test.png
入力画像を作成するプログラム
from PIL import Image, ImageDraw, ImageFont
# 入力パラメータ
text = r"""!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"""
font_path = "Y-Regular.ttf" # 使用するフォントのファイルパス
font_size =50 # フォントサイズを大きく設定
char_image_size = (73, 73) # 各文字画像のサイズ(幅、高さ)
# 文字の列数と行数を計算
num_cols = len(text) // 3 + (1 if len(text) % 3 else 0) # 3行になるように列数を決定
image_width = char_image_size[0] * num_cols
image_height = char_image_size[1] * 3
# 全体の画像を作成(背景は白)
output_image = Image.new("RGBA", (image_width, image_height), (255, 255, 255, 255))
draw = ImageDraw.Draw(output_image)
font = ImageFont.truetype(font_path, font_size)
# 文字を描画
x, y = 0, 0
for index, char in enumerate(text):
# 各文字のイメージ(背景は白)
char_image = Image.new("RGBA", char_image_size, (255, 255, 255, 255))
char_draw = ImageDraw.Draw(char_image)
# 中央配置のために文字の描画位置を計算
bbox = char_draw.textbbox((0, 0), char, font=font)
w, h = bbox[2] - bbox[0], bbox[3] - bbox[1]
position = ((char_image_size[0] - w) / 2, (char_image_size[1] - h) / 2/ 2/ 2)
print(position)
# 中央に文字を描画
char_draw.text(position, char, font=font, fill="black")
# 全体画像に配置
output_image.paste(char_image, (x, y))
x += char_image_size[0]
# 1行が終わったら次の行へ
if (index + 1) % num_cols == 0:
x = 0
y += char_image_size[1]
# 画像をPNGとして保存
output_image.save("output_text_image.png")
print("画像が保存されました: output_text_image.png")
ディスカッション
コメント一覧
まだ、コメントがありません