【Python】Pillowで画像に文字を入れてサムネイル画像作成する方法

【Python】Pillowで画像に文字を入れてサムネイル画像作成する方法 Python
【Python】Pillowで画像に文字を入れてサムネイル画像作成する方法

今回はPythonのライブラリであるPillowを使用してブログやYoutubeのサムネイルを作成する方法を紹介します

バージョン

  • Python 3.11.4
  • Pillow 10.2.0

実装コード

from PIL import Image, ImageDraw, ImageFont

img = Image.open("./original_image.png") # 元になる画像のパス

draw = ImageDraw.Draw(img)

font = ImageFont.truetype("C:\Windows\Fonts\meiryob.ttc", 100) # フォント読み込み

draw.text(
    xy = (720, 150), # 座標
    text = "THIS\nIS\nGREEN", # 文字
    fill = "#fff", # 色
    spacing = 30, # 間隔
    align = "left", # 文字位置
    font = font, # フォント
)

img.show() # プレビュー表示

img.save("./new_thumbnail.png") # 作成した画像を保存する

上記のコードで出来上がったものが以下になります

解説

インストール、インポート

まずはPillowを使用するためにインストールから行います

pip install pillow

その後、ファイルにインポートする記述の追加します

from PIL import Image, ImageDraw, ImageFont

元になる画像の指定

以下では文字を入れたい元になる画像を指定し、Imageオブジェクトを作成します

img = Image.open("./original_image.png") # 元になる画像のパス

draw = ImageDraw.Draw(img)

この時点でのoriginal_image.pngの画像は以下のとおりです

フォントの指定

フォントの設定を行います

font = ImageFont.truetype("C:\Windows\Fonts\meiryob.ttc", 100) # フォント読み込み

ImageFont.truetypeには第一引数にフォントのパス、第二引数にフォントサイズをしています
またGoogleFonts等からダウンロードしたフォントを指定することも可能です

フォントのパスはwindowsならC:¥Windows¥Fonts、macなら~/Library/Fonts/のフォルダを参照

表示する文字の設定

draw.text(
    xy = (720, 150), # 座標
    text = "THIS\nIS\nGREEN", # 文字
    fill = "#fff", # 色
    spacing = 30, # 間隔
    align = "left", # 文字位置
    font = font, # フォント
)

textには表示する文字の設定をしていて、\nで改行をするようにしています

fillは色の指定ができ、(255,0,0)のようなRGB、#123456のような16進数、「red」「blue」などの文字列で色を指定することができます

プレビュー、保存

img.show() # プレビュー表示

img.save("./new_thumbnail.png") # 作成した画像を保存する

最後にImageオブジェクトにshow()やsave()をすることで画像のプレビューや保存を行うことができます

まとめ

簡単なサムネイル作成やサムネイル作成を自動化したい場合にはこの手法で量産できそうですね

不具合等あればコメントでご連絡ください!

コメント

タイトルとURLをコピーしました