【初心者向け】PythonのPillowで画像処理入門|基本操作から編集まで解説

【初心者向け】PythonのPillowで画像処理入門|基本操作から編集まで解説

Pythonで画像を編集したいと思ったことはありませんか?この記事では、Pythonの画像処理ライブラリ「Pillow(ピロー)」を使って、画像の読み込み・保存・リサイズ・トリミング・文字の書き込みなど、基本的な画像編集の方法を初心者にもわかりやすく解説します。子供から大人まで、プログラミングが初めての方でも理解できるように丁寧に説明していきます。

PythonのPillowとは?画像処理を手軽に始められるライブラリ

Pillow(ピロー)は、Pythonで画像処理を行うためのライブラリです。もともとはPython Imaging Library(PIL)というライブラリが使われていましたが、開発が止まったため、それを改良したPillowが主流になりました。

Pillowを使うことで、画像の読み込み、保存、サイズ変更、切り抜き、回転、フィルター効果、文字の描画など、さまざまな処理が簡単にできるようになります。

Pillowを使う準備|インストール方法と環境構築

まず初めに、Pillowをインストールします。以下のコマンドをターミナルやコマンドプロンプトに入力してください。

pip install Pillow

これで準備は完了です。次からは、実際に画像を操作していきましょう。

Pythonで画像を読み込んで表示する基本操作

Pillowで画像を扱う際は、まず画像を読み込む必要があります。以下のコードで画像を読み込み、表示することができます。

from PIL import Image

# 画像を開く
image = Image.open('sample.jpg')

# 画像を表示する
image.show()

Image.open() は画像ファイルを開く関数です。画像ファイルが同じフォルダにあることを確認してください。image.show() を実行すると、デフォルトの画像ビューアで画像が表示されます。

画像のサイズを変更(リサイズ)する方法

画像のサイズを変更するには、resize() 関数を使います。

resized_image = image.resize((200, 200))
resized_image.show()

この例では、画像を200×200ピクセルにリサイズしています。オリジナルの縦横比を保ちたい場合は、元のサイズを取得して比率計算をする必要があります。

# 縦横比を保ったリサイズ
width, height = image.size
new_width = 300
new_height = int((new_width / width) * height)
resized_image = image.resize((new_width, new_height))
resized_image.show()

画像の一部を切り抜く(トリミング)方法

画像の一部だけを使いたい場合は、crop() 関数でトリミングができます。

cropped_image = image.crop((50, 50, 200, 200))
cropped_image.show()

crop((左, 上, 右, 下)) のように座標を指定して切り抜きます。

画像を回転・反転する方法

画像を回転させるには rotate()、左右や上下に反転させるには transpose() を使います。

# 画像を90度回転
rotated_image = image.rotate(90)
rotated_image.show()

# 左右反転
flipped_image = image.transpose(Image.FLIP_LEFT_RIGHT)
flipped_image.show()

画像に文字を描く方法|フォントと座標の指定

画像の上にテキストを描くには、ImageDraw モジュールを使用します。

from PIL import ImageDraw, ImageFont

draw = ImageDraw.Draw(image)
font = ImageFont.truetype('arial.ttf', 20)  # フォントファイルとサイズを指定

draw.text((50, 50), 'Hello, Pillow!', font=font, fill=(255, 0, 0))
image.show()

ImageFont.truetype() はフォントを指定する関数です。環境によってはフォントファイルが見つからないことがあるため、その場合はデフォルトフォントを使用します。

font = ImageFont.load_default()

編集した画像を保存する方法

画像を編集したあとに保存するには、save() 関数を使います。

image.save('output.jpg')

保存形式(JPEG、PNGなど)はファイル名の拡張子によって自動的に判別されます。必要に応じてフォーマットを明示的に指定することもできます。

image.save('output.png', format='PNG')

よく使う画像処理テクニックと応用例

Pillowを使えば、基本的な操作だけでなく以下のような応用も可能です:

  • グレースケール変換(白黒画像)
  • フィルター効果(ぼかし、シャープなど)
  • 複数画像の結合

たとえば、グレースケールに変換するには次のようにします:

gray_image = image.convert('L')
gray_image.show()

PythonとPillowで画像処理を学ぶメリット

Pillowを使えば、複雑な画像処理もPythonのシンプルな文法で行うことができます。これにより、プログラミングの初学者でも簡単に画像の編集や変換にチャレンジできます。

また、画像処理の基礎を身につけておくと、AIや機械学習、ゲーム開発など他の分野にも応用が利きます。

まとめ

今回は、PythonのPillowライブラリを使って、基本的な画像処理の方法について解説しました。画像の読み込みから表示、リサイズ、トリミング、回転、文字の書き込み、保存まで、初心者の方でもわかりやすく理解できる内容を心がけました。

画像処理は一見難しそうに感じますが、Pillowを使えば意外と簡単に始められます。ぜひ自分でコードを書いて試しながら、少しずつスキルを身につけていってください。