Skip to content

Instantly share code, notes, and snippets.

@nikaera
Last active May 23, 2021 09:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nikaera/c1049708ff548b06cab0ae377adc4ac7 to your computer and use it in GitHub Desktop.
Save nikaera/c1049708ff548b06cab0ae377adc4ac7 to your computer and use it in GitHub Desktop.
Embedding Japanese vertical writing characters into an image using Pillow.
# Put the image file sample.jpeg in the same directory as main.py
from PIL import Image, ImageDraw, ImageFont
font_name = "/System/Library/Fonts/ヒラギノ角ゴシック W0.ttc"
font_size = 48
font = ImageFont.truetype(font_name, font_size)
im = Image.open('sample.jpeg')
w, h = im.size
d = ImageDraw.Draw(im)
text = "bifdLcFCKXtFJZmPZhzdefjhhYTtuJPAYsR"
# split_number needs to be smaller or larger depending on the font and its size.
split_number = 11
# ref: https://qiita.com/yasunori/items/551a7c20ef9b81474e2a
splits = [text[i: i+split_number] for i in range(0, len(text), split_number)]
top_right_margin = 13
right_edge = w - top_right_margin
d.rectangle((right_edge, top_right_margin, right_edge - font_size * len(splits), font_size * split_number + top_right_margin), fill=(255, 255, 255), outline=(255, 0, 0))
for index, item in enumerate(splits):
d.text((right_edge - (font_size / 2) - font_size * index, top_right_margin), item, fill="black", anchor="mt", font=font, direction="ttb")
im.save("test.png")
@nikaera
Copy link
Author

nikaera commented May 23, 2021

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment