【Python】Pillowでアートワーク用の画像を生成する方法(Mac/Windows対応)

Python

ストリーミングで音楽再生するのが当たり前になった昨今、iTunesでローカルのMP3でしか再生できない曲あると思います。MP3ファイルのアートワークが設定されていないとiPhoneやiPodでアルバム表示した際にどの曲か直感的にわからないです。

この記事ではPythonの画像処理ライブラリ「Pillow」を使って、簡単に画像にテキストを描画する方法をご紹介します。この記事では、MacWindowsの環境でフォントを指定してテキストを描画するサンプルコードを紹介します。Pillowを使えば、画像処理がとても簡単にできるので、ぜひ参考にしてください!


Pillowのインストール

まず、Pillowを使うためにライブラリをインストールします。ターミナルまたはコマンドプロンプトで次のコマンドを実行してください。

pip install pillow

サンプルコード

ここでは、画像の中央にテキストを描画するプログラムを作成します。環境に応じてフォントを指定できるように、MacWindowsのフォント指定方法もご紹介します。

from PIL import Image, ImageDraw, ImageFont

# OSごとにフォントパスを指定
import platform
if platform.system() == "Windows":
    fonts = 'C:\\Windows\\Fonts\\HGRPP1.TTC'  # Windows用フォント
else:
    fonts = '/System/Library/Fonts/ヒラギノ角ゴシック W6.ttc'  # Mac用フォント

# 画像のサイズを設定
image_size = (1000, 1000)

# 背景色を設定
background_color = (127, 127, 127)

# フォントを設定
font = ImageFont.truetype(fonts, 50)

# 画像オブジェクトを作成
image = Image.new("RGB", image_size, background_color)

# 描画オブジェクトを作成
draw = ImageDraw.Draw(image)

# 描画するテキスト
month_text = "ENGLISH CD volume1"

# テキストのバウンディングボックスを取得
text_bbox = draw.textbbox((0, 0), month_text, font=font)

# テキストを中央に配置
text_position = ((image_size[0] - (text_bbox[2] - text_bbox[0])) // 2, 
                 (image_size[1] - (text_bbox[3] - text_bbox[1])) // 2)

# テキストを描画
draw.text(text_position, month_text, fill=(255, 255, 255), font=font)

# 画像を保存
image.save("ENGLISH_CD.png")

実行することでアートワークの画像が出力されます。

コードの解説

  1. ライブラリのインポート
    • Pillowの中からImageImageDrawImageFontをインポートします。これらを使って画像の作成、テキストの描画、フォントの設定を行います。
  2. フォントの指定
    • MacとWindowsではフォントファイルの保存場所が異なります。platform.system() を使って、OSに応じたフォントを指定します。
      • WindowsC:\Windows\Fonts\HGRPP1.TTC
      • Mac/System/Library/Fonts/ヒラギノ角ゴシック W6.ttc
  3. 画像の作成
    • Image.new()を使って、サイズ(1000×1000ピクセル)と背景色を指定して新しい画像を作成します。
  4. テキストの描画
    • ImageDraw.Draw()を使って画像に描画オブジェクトを作成し、draw.text() でテキストを画像の中央に描画します。
    • テキストを中央に配置するために、textbbox()でテキストのサイズを取得し、位置を計算します。
  5. 画像の保存
    • image.save() で画像を「ENG.png」という名前で保存します。

背景色の変更について

サンプルコード内で指定している背景色は、RGB形式で自由に変更可能です。以下は背景色を変更する際のいくつかの例です。

  • (255, 0, 0)
  • (0, 255, 0)
  • (0, 0, 255)
  • (255, 255, 255)
  • (0, 0, 0)

RGB形式はそれぞれ「赤、緑、青」の成分を0~255の数値で指定します。背景色を自由に設定して、オリジナルのデザインを作りましょう!

MacとWindowsのフォントの違いについて

Windowsではフォントファイルは「C:\Windows\Fonts\」フォルダに保存されていますが、Macでは「/System/Library/Fonts/」や「/Library/Fonts/」にあります。必要に応じてフォントパスを指定することで、適切なフォントで画像にテキストを描画できます。


まとめ

Pillowを使えば、簡単に画像にテキストを描画することができます。OSによってフォントのパスが異なるので、環境に合わせてフォントを指定しましょう。今回紹介したコードを応用すれば、カスタムの画像生成やデザインにも活用できます。

コメント

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