2016-08-22 9 views
0

画像Bを画像Aに半透明で貼り付けようとしています(貼り付けた画像が半透明です)。ImageEnhanceの動作が変更されました。

A = Image.open('A.png') 

B = Image.open('B.png') 
enhancer = ImageEnhance.Brightness(B) 
mask = enhancer.enhance(0.5) 
print(mask.getpixel((10,10)), mask.getpixel((30,30))) 
mask.save('Mask.png') 

A.paste(B, (0,0), mask) 
A.save('Result.png') 

画像Aは、白い背景

に黒の 'A' である:

枕のバージョン2.1.0では、次のコードはバージョンでは、働いていた作品、もはやそれを3.3.1ません

画像Bは

画像は

の下に設けられている透明な背景に赤い「B」であります2.1.0マスク

の画素30,30のため3.3.1生成マスク

版(127,0,0,255)の画素30,30のための(127,0,0,127)を生成

Image A

Image B

答えて

1

枕画素の明るさを変更することその透明度を変更してはならない、正しいです。明らかにPILにバグがありました。

あなたが本当にしたいのは、画像Bのアルファを分割してそのをマスクにすることです。技術を使用してからthis answer

mask = B.split()[-1] 
enhancer = ImageEnhance.Brightness(mask) 
mask = enhancer.enhance(0.5)