Warning: Undefined variable $position in /home/pystyles/pystyle.info/public_html/wp/wp-content/themes/lionblog/functions.php on line 4897

Pillow – 画像を横または縦方向に結合する方向

Pillow – 画像を横または縦方向に結合する方向

概要

Pillow を使って、画像を縦または横方向に結合する方法について解説します。

Advertisement

横方向に結合する

以下の2枚の画像を使用します。

sample1.jpg

sample2.jpg

横方向の結合は、大きさが (画像1の幅 + 画像2の幅, max(画像1の高さ, 画僧2の高さ) の空の画像を作成し、その上に結合する画像を貼り付ける形で行います。

横方法に結合

In [1]:
from PIL import Image


def concat_h(img1, img2, color="black"):
    dst = Image.new(
        "RGB", (img1.width + img2.width, max(img1.height, img2.height)), color
    )
    dst.paste(img1, (0, 0))
    dst.paste(img2, (img1.width, 0))

    return dst


img1 = Image.open("sample1.jpg")
img2 = Image.open("sample2.jpg")

dst = concat_h(img1, img2, color="white")
dst

縦方法に結合する

縦方向の結合は、大きさが (max(画像1の幅, 画像2の幅), 画像1の高さ + 画像2の高さ の空の画像を作成し、その上に結合する画像を貼り付ける形で行います。

縦方法に結合

In [2]:
def concat_v(img1, img2, color="black"):
    dst = Image.new(
        "RGB", (max(img1.width, img2.width), img1.height + img2.height), color
    )
    dst.paste(img1, (0, 0))
    dst.paste(img2, (0, img1.height))

    return dst


dst = concat_v(img1, img2, color="white")
dst