PILで透過PNGの合成

PILで、透過PNG画像を、透過を活かしたまま別の画像の上に重ねた合成画像を作ろうと苦戦していたのだけど、やっとやり方が分かった。

Image.split() で R、G、B、A の各チャンネルの画像が抽出できることに気付くまでが長かった。

import Image

img = Image.open('transparent.png')
mask = img.split()[3]
bg = Image.open('bg.png')
bg.paste(img, None, mask)
bg.save('composite.png')
Last updated on July 8, 2015