前提・実現したいこと
点線より上の処理の処理をリストを用いてシンプルにしたいと考えています。
現在は、アルファブレンドを行う際の条件処理と、ブレンドしたものをどのようにリストに追加すればよいかで悩んでいます。何卒よろしくお願い致します。
発生している問題・エラーメッセージ
src3 = [] for i in src2: if i % 2 == 1: i.alpha_composite(i, i+1)#アルファブレンドを行う の部分で以下のエラーが生じています。 TypeError: unsupported operand type(s) for %: 'Image' and 'int'
該当のソースコード
python
1from PIL import Image 2 3src1 = Image.open('img7.png') 4src2 = Image.open('img34.png') 5src1 = src1.convert('RGBA')#アルファブレンドで合成したい画像はRGBA 6src2 = src2.convert('RGBA') 7src1 = Image.alpha_composite(src1, src2)#アルファブレンドを行う 8src1.save('bom11.png') 9 10src3 = Image.open('img8.png') 11src4 = Image.open('img33.png') 12src3 = src3.convert('RGBA') 13src4 = src4.convert('RGBA') 14src3 = Image.alpha_composite(src3, src4) 15src3.save('bom12.png') 16 17src5 = Image.open('img9.png') 18src6 = Image.open('img32.png') 19src5 = src5.convert('RGBA') 20src6 = src6.convert('RGBA') 21src5 = Image.alpha_composite(src5, src6) 22src5.save('bom13.png') 23 24src7 = Image.open('img10.png') 25src8 = Image.open('img31.png') 26src7 = src7.convert('RGBA') 27src8 = src8.convert('RGBA') 28src7 = Image.alpha_composite(src7, src8) 29src7.save('bom14.png') 30------------------------------------------------------------------------------------ 31from PIL import Image 32 33files = ['img7.png','img34.png','img8.png','img33.png','img9.png','img32.png','img10.png', 'img31.png'] 34 35src = [] 36for i in files: 37 src.append(Image.open(i)) 38 39src2 = [] 40for i in src: 41 src2.append(i.convert('RGBA')) 42 43src3 = [] 44for i in src2: 45 if i % 2 == 0: 46 i.alpha_composite(i, i+1)#アルファブレンドを行う 47 48src3[0].save('bom11.png') 49src3[1].save('bom12.png') 50src3[2].save('bom13.png') 51src3[3].save('bom14.png')
試したこと
[0]と[1]、[2]と[3]といったような組み合わせでブレンドを行いたいため、条件処理で偶数番目の時だけ次の画像とブレンドをするようにしてみたのですが上手くいきませんでした。
点線より上の処理を含め、現在エラーの生じている部分と最後の保存以外は実行できることを確認済みです。保存は、リストへの追加ができれば上手くいくかと思います。
補足情報(FW/ツールのバージョンなど)
PythonのPillowを使って製作するように指示が出ています。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/25 01:24