Navigation

Related Articles

Back to Latest Articles

Pillowを使って画像を合成する


press
Pillowを使って画像を合成する

Pillowを使って画像を合成する方法です。
GitHubリポジトリ

上の2つの画像を合成して、下の画像を生成します。

Pillowのインストール

$ pip install Pillow

バージョン確認

$ python -V
Python 3.7.0

$ pip freeze
Pillow==6.0.0

ディレクトリ構造

.
├── images  # 元画像フォルダ
│   ├── base.jpg
│   └── logo.png
├── paste.py
├── pasteimages  # 合成した画像の保存フォルダ
│   └── paste.png
└── venv

画像をリサイズ

from PIL import Image

base_image = Image.open('./images/base.jpg')
base_image.thumbnail((500, 500), Image.ANTIALIAS)

logo_image = Image.open('./images/logo.png')

w = ((base_image.size[0] - logo_image.size[0]) / 2)
h = ((base_image.size[1] - logo_image.size[1]) / 2)

base_image.paste(logo_image, (int(w), int(h)), mask=logo_image)

base_image.save('./pasteimages/paste.png', 'PNG', quality=100)

base_image = Image.open('./images/base.jpg')
背景画像を開く
base_image.thumbnail((500, 500), Image.ANTIALIAS)
画像の比率はそのままリサイズ(最大500px)
logo_image = Image.open('./images/logo.png')
合成用画像を開く
w = ((base_image.size[0] - logo_image.size[0]) / 2)
背景画像の横幅の中心を取得
h = ((base_image.size[1] - logo_image.size[1]) / 2)
背景画像の縦幅の中心を取得
base_image.paste(logo_image, (int(w), int(h)), mask=logo_image)
背景画像の中心に画像を合成
base_image.save('./pasteimages/paste.png', 'PNG', quality=100)
画像を保存


当ブログは群馬県でPython / Djangoを中心にウェブアプリケーションを開発している株式会社ファントムが運営しています。

株式会社ファントムへのお問い合わせ




    Show Comments (0)

    Comments

    Related Articles

    Python

    Pythonでディレクトリ内のファイルを取得する

    globモジュールを使いディレクトリ内にあるファイルを取得する方法です。 ディレクトリ構造 まずはディレクトリ内のjpgを全て取得します。 directory = (os.getcwd())で現在のディレクトリのパスを取 […]

    Posted on by press
    Django

    Djangoでカスタムコマンドを作り実行する

    DjangoでWEBアプリケーションを開発していてデータベースの集計などをバッチ処理したいときに、カスタムコマンドを作り実行する方法です。 今回はサンプルとしてmycommandアプリケーションを作成するので以下のコマン […]

    Posted on by press