PythonPillow-画像のマージ

ピローパッケージを使用すると、画像を別の画像に貼り付けることができます。merge()関数は、モードと画像のタプルをパラメーターとして受け入れ、それらを1つの画像に結合します。

構文

Image.merge(mode, bands)

どこ、

  • mode −出力画像に使用するモード。

  • bands −出力画像の各バンドに1つのシングルバンド画像を含むシーケンス。すべてのバンドは同じサイズである必要があります。

  • Return value −画像オブジェクト。

merge()関数を使用すると、画像のRGBバンドを次のようにマージできます。

from PIL import Image
image = Image.open("beach1.jpg")
r, g, b = image.split()
image.show()
image = Image.merge("RGB", (b, g, r))
image.show()

上記のコードを実行すると、元の画像と、以下に示すようにRGBバンドをマージした画像を確認できます。

Input image

Output image

2つの画像をマージする

同様に、2つの異なる画像をマージするには、次のことを行う必要があります。

  • open()関数を使用して、必要な画像の画像オブジェクトを作成します。

  • 2つの画像をマージするときは、両方の画像が同じサイズであることを確認する必要があります。したがって、両方の画像の各サイズを取得し、必要に応じてサイズを変更します。

  • Image.new()関数を使用して空の画像を作成します。

  • paste()関数を使用して画像を貼り付けます。

  • save()関数とshow()関数を使用して、結果の画像を保存して表示します。

次の例は、Python枕を使用した2つの画像のマージを示しています-

from PIL import Image
#Read the two images
image1 = Image.open('images/elephant.jpg')
image1.show()
image2 = Image.open('images/ladakh.jpg')
image2.show()
#resize, first image
image1 = image1.resize((426, 240))
image1_size = image1.size
image2_size = image2.size
new_image = Image.new('RGB',(2*image1_size[0], image1_size[1]), (250,250,250))
new_image.paste(image1,(0,0))
new_image.paste(image2,(image1_size[0],0))
new_image.save("images/merged_image.jpg","JPEG")
new_image.show()

出力

上記のプログラムをExample.pyとして保存して実行すると、次のように、標準のPNG表示ユーティリティを使用して2つの入力画像とマージされた画像が表示されます。

Input image1

Input image2

Merged image