2016-12-10 5 views
1

python PILライブラリのpasteを使用して、画像を黒の背景に貼り付けたいとします。Python-Imaging-Libraryのみ255の画像パーツを貼り付けます。

私は唯一のアルファ値がある画像の部分を持つようにしたい私は、アルファマスク、として画像自体を使用することができます知っているが

これはどのように可能ですか?ここで


は、これまでの私のコードです:私は公式に何かを見つけることができません

import PIL 
from PIL import Image 

img = Image.open('in.png') 
background = Image.new('RGBA', (825, 1125), (0, 0, 0, 255)) 

offset = (50, 50) 

background.paste(img, offset, img) #image as alpha mask as third param 
background.save('out.png') 


悪いdocumentation

答えて

1

私が正しくあなたの質問を理解していれば、その後 これはAです可能な解決策。メモ、背景画像のアルファチャンネルはかなり役に立たないよう

from PIL import Image 

img = Image.open('in.png') 

# Extract alpha band from img 
mask = img.split()[-1] 
width, height = mask.size 

# Iterate through alpha pixels, 
# perform desired conversion 
pixels = mask.load() 
for x in range(0, width): 
    for y in range(0, height): 
     if pixels[x,y] < 255: 
      pixels[x,y] = 0 

# Paste image with converted alpha mask 
background = Image.new('RGBA', (825, 1125), (0, 0, 0, 255)) 
background.paste(img, (50, 50), mask) 
background.save('out.png') 

:これは、ペーストに使用される 専用マスクを生成します。 は、あなたが後でそれを必要としない場合は、またして背景を読み込むことができます:

background = Image.new('RGB', (825, 1125), (0, 0, 0)) 
+0

まあ、完璧なソリューションのthats、私はちょうど私の自身のマスクを作成するので考えることstuipidすることでした。どうもありがとう –

関連する問題