手元にパワーポイントの図形で描画し、右クリックで「図として保存」したお皿画像とプリンがあります。
PIL でお皿にプリンを貼ると以下のようになります(私の手元のお皿画像・プリン画像とカラーパレットが同一でないと同じ結果になりません)。
from PIL import Image img_plate = Image.open('plate.png') # なお読込時のデータフォーマットは P(カラーパレット) img_pudding = Image.open('pudding.png') # なお読込時のデータフォーマットは P(カラーパレット) img_plate.paste(img_pudding, (65, 55)) # 皿にプリンを貼る(位置は適宜調整する) img_plate.save('pudding_plate_0.png') # 黒いプリンになる(プリンの色番号がお皿を超えているため) img_plate = Image.open('plate.png').convert('RGBA') # データフォーマット変換 img_pudding = Image.open('pudding.png').convert('RGBA') # データフォーマット変換 img_plate.paste(img_pudding, (65, 55)) img_plate.save('pudding_plate_1.png') # プリンの透過ピクセルが皿に貼った後も透過ピクセルになる img_plate = Image.open('plate.png') img_pudding = Image.open('pudding.png').convert('RGBA') # プリンのみデータフォーマット変換 img_plate.paste(img_pudding, (65, 55), img_pudding) # プリンの形に切り抜く img_plate.save('pudding_plate_2.png') # おそらくプリンに色番号が再割当され背景色を引き当てている img_plate = Image.open('plate.png').convert('RGBA') # データフォーマット変換 img_pudding = Image.open('pudding.png').convert('RGBA') # データフォーマット変換 img_plate.paste(img_pudding, (65, 55), img_pudding) # プリンの形に切り抜く img_plate.save('pudding_plate_3.png') # OK
