
#ライブラリのインポート
from PIL import Image
#画像を入れる箱を準備
pictures=[]
#画像を箱に入れていく
for i in range(70):
pic_name=str(i+1)+ '.png'
img = Image.open(pic_name)
pictures.append(img)
#gifアニメを出力する
pictures[0].save('anime.gif',save_all=True, append_images=pictures[1:],
optimize=False, duration=16.66666, loop=0)
このコードでgifを作成しましたが、画像が切り替わっても前の画像が消えずに残り続けてしまいます。例えば4枚目の画像に切り替わった時も1枚目、2枚目、3枚目の画像が残っています。全ての画像で同じ現象が起きます。画像が切り替わった時にそれ以前の画像を表示しない方法が知りたいです。
どうぞよろしくお願い致します。
No.1ベストアンサー
- 回答日時:
う〜む。
分からん!正直言うと、そもそもgifアニメをPythonで作る「必然性」が良く分かんねぇんだよなぁ。
ハッキリ言っちゃうと、「専門のソフト」で作った方が良くないか、と。何故にPythonで「苦労して」gifアニメを作らにゃアカンのか。
プログラミングってさ。第一に「適した場面で適したツールを選んで適用させる」のが才能、っつーかセンスなのね。
特定のツールにこだわって(この場合Pythonか)「それを何が何でも使わなアカン」ってなるのはあまり賢いやり方じゃねぇんだわ。
例えば、単にコマンドラインでgifアニメを作りたいだけ、ならImageMagickと言うソフトがあって、それが一番簡単にgifアニメを作る方法の一つだと思う。
ImageMagick:
https://imagemagick.org
ImageMagick使いかた日本語マニュアル:
https://imagemagick.biz
ImageMagickでのgifアニメの作り方、なんつーのはWeb検索すればそれこそ山ほど引っかかるだろう。
このテのCLI(コマンドライン)のソフトウェアは、例えばWindowsだとPowerShellやDOS窓(コマンドプロンプト)で扱うソフトだ。
言い換えると、実はPythonから呼び出して使う事も可能だ。
サブプロセス管理:
https://docs.python.org/ja/3/library/subprocess. …
つまり、マジメにGIFアニメを作りたい、ってのなら、PILモジュールを使う、ってのは必ずしも「スジの良い」やり方だとは思わないんだよ。だってそもそもgifアニメを作る目的のツールじゃないだろ?「出来るよ」ってだけであってそれ以上じゃない。
マジメにプログラミングをしたい、ってぇのなら、このテのCLIのソフトウェアを使う事を覚えるべきだね。OSの・・・Windowsの備えてるコマンドラインも調べて習熟すべきだし(ファイル名を全部連番化したいのなら当然だ)、そして上のサブプロセス管理のように、「Pythonから」端末的機能を呼び出して、目的の事をやらせてみる、ってのも有効だろう。
まぁ、一回素のままでImageMagick使ってgifアニメを作ってみてご覧。それが終わってから、Pythonでサブプロセス利用してImageMagickを呼び出して同じ事を実験してみる・・・とかやっていけば、嫌でも習熟していくと思うよ。
Pythonが簡単だと聞いたので何となく使っていました・・ImageMagick使ってみたいと思います。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript Javascript で共通の処理をどこまでまとめるべきか分からないのでアドバイスお願い致します 1 2024/03/19 12:04
- HTML・CSS 画像が分割されて切り替わる、ループアニメーションが作りたい 7 2023/05/27 17:12
- その他(プログラミング・Web制作) UDP通信を使うチャットプログラムを改変して小さいサイズの画像も送信できないか(Python) 1 2023/12/09 19:09
- JavaScript jQuery . プログラミング 助けて下さい 変数「$displayslide」からactiveク 2 2023/09/08 23:07
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- その他(プログラミング・Web制作) PythonのTkinter詳しい方へ。画像や言葉の意味を答える3択クイズを作るのに手間取っています 1 2023/12/04 17:10
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jqueryスライダーを2段でスライ...
-
ワードプレスで画像を何枚か横...
-
UWSCの画像認識と条件分岐につ...
-
マウスが重なると画像を変更 ...
-
背景画像の繰り返しについて
-
複数枚画像の合成
-
HPの画像の位置について
-
画像のビット数を変更する方法
-
画像の存在チェック
-
同じ画像を複数回表示させる
-
画像をフーリエ変換するソース...
-
レンタルチャットを借りたんで...
-
決められた4つの座標をランダム...
-
画像のデザイン
-
【EXCEL VBA】ダブルクリックで...
-
画像の位置の検索
-
ヒストグラム類似度による画像...
-
UWSC 画像認識で条件分岐
-
uwcs のマクロで画像認識をして...
-
画像の上でペイント
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
背景画像の繰り返しについて
-
EXCEL VBA 複数のImageコントロ...
-
【EXCEL VBA】ダブルクリックで...
-
uwcs のマクロで画像認識をして...
-
vb.net 画像の透過について
-
UWSCでループ処理がうまくいき...
-
UWSCの画像認識と条件分岐につ...
-
Excel ユーザーフォームで表示...
-
「using Windows」でエラーが出る
-
UWSC 画像判定と条件分岐について
-
uwscの画像認識に失敗します。
-
画像のビット数を変更する方法
-
jqueryスライダーを2段でスライ...
-
画像処理したBitmapをピクチャ...
-
UWSCの色判定
-
UWSCについて
-
スマホでサイトの画像を長押し→...
-
VBAのユーザーフォームのイメー...
-
gif 画像上の ボタンに リン...
-
画像のピクセルデータの取得
おすすめ情報