質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
リサイズ

コントロール、ウィンドウ、フォームやスクリーンのサイズ変更を指します。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

803閲覧

リストでコードを書いてシンプルにしたいです。

Shooo-8897

総合スコア3

リサイズ

コントロール、ウィンドウ、フォームやスクリーンのサイズ変更を指します。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/06/24 13:41

編集2021/06/24 15:53

前提・実現したいこと

点線より上の処理を点線より下のようにリストを使ってシンプルにしたいです。
現在は、画像の透過度をfiles[]の中の何番目にある画像かによって変更できるようにするところで悩んでいます。理解力に乏しいため、参考のコードも掲載していただけると助かります。何卒よろしくお願い致します。

発生している問題・エラーメッセージ

for i in src2: src2[i].putalpha(200-i*20) の部分で以下のエラーが生じています。 TypeError: list indices must be integers or slices, not Image

該当のソースコード

python

1from PIL import Image 2 3src1 = Image.open('img14.png') 4 5src01 = src1.crop((125,125,875,500)) 6src01.save('img16.png') 7 8src02 = src1.crop((250,250,750,500)) 9src02.save('img17.png') 10 11src03 = src1.crop((375,375,625,500)) 12src03.save('img18.png') 13 14src11 = Image.open('img18.png') 15src12 = Image.open('img17.png') 16src13 = Image.open('img16.png') 17src14 = Image.open('img14.png') 18 19img1 = src11.resize((1000,562)) 20img1.putalpha(200) 21img1.save('img31.png') 22 23img2 = src12.resize((1000,562)) 24img2.putalpha(180) 25img2.save('img32.png') 26 27img3 = src13.resize((1000,562)) 28img3.putalpha(160) 29img3.save('img33.png') 30 31img4 = src14.resize((1000,562)) 32img4.putalpha(140) 33img4.save('img34.png') 34------------------------------------------------------------------ 35from PIL import Image 36 37src1 = Image.open('img14.png') 38 39src01 = src1.crop((125,125,875,500)) 40src01.save('img16.png') 41 42src02 = src1.crop((250,250,750,500)) 43src02.save('img17.png') 44 45src03 = src1.crop((375,375,625,500)) 46src03.save('img18.png') 47 48files = ['img18.png','img17.png','img16.png','img14.png'] 49 50src = [] 51for i in files: 52 src.append(Image.open(i)) 53 54src2 = [] 55for i in src: 56 src2.append(i.resize((1000,562))) 57 58for i in src2: 59 src2[i].putalpha(200-i*20) 60 61src2[0].save('img31.png') 62src2[1].save('img32.png') 63src2[2].save('img32.png') 64src2[3].save('img33.png')

試したこと

点線より上の処理を含め、現在エラーの生じている部分以外は実行できることを確認済みです。
また、もしこれ以上にシンプルにできるようなコードがありましたらぜひ教えていただきたいです。

補足情報(FW/ツールのバージョンなど)

PythonのPillowを使って製作するように指示が出ています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2021/06/24 13:55

質問タグの「リストボックス」は無関係ではありませんか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問