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

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

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

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

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

Q&A

解決済

2回答

854閲覧

背景が透過しているGIFを作成したい

tshu_m421

総合スコア5

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

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

0グッド

0クリップ

投稿2023/02/10 14:36

実現したいこと

背景が透過しているGIFを作成したい

前提

PythonでGIF画像を作成しています。
GIF画像の作成自体は出来ましたが、その画像の背景を透過した状態で保存したいです。
しかしながら、実装方法が分かりません。

該当のソースコード

Python

1#更新関数 2def update(i,x, y): 3 plt.grid(linestyle="dashed",linewidth=0.5) 4 plt.xlim(0.2,0.8) 5 plt.ylim(0.2,0.8) 6 plt.plot(x[1:i], y[1:i], "b") 7 8 9frame=len(x) 10fig = plt.figure() 11ani = anm.FuncAnimation(fig, update,fargs=(x,y),frames=frame,interval = 20) 12plt.show() 13ani.save("animation_test.gif"., dpi=200,writer="pillow")

xとyの中身

1x=[0.49896167 0.5 0.50367188 0.50425208 0.50921378 0.51089968 2 0.51126772 0.51311808 0.51215438 0.51113307 0.51082471 0.51056198 3 0.50996041 0.51257635 0.51342607 0.51245517 0.51172465 0.51044198 4 0.5077556 0.50662932 0.50550198 0.50619502 0.50605936 0.50558272 5 0.50578243 0.50253293 0.50111949 0.49589318 0.49225415 0.49021766 6 0.48683595 0.48591682 0.48293406 0.48085618 0.47644612 0.47438594 7 0.47183578 0.46822186 0.46787172 0.46412875 0.4646603 0.46483578 8 0.46455694 0.46455418 0.46446406 0.46467624 0.46619841 0.4736629 9 0.48066755 0.48870835 0.49609145 0.50155581 0.50886362 0.5162117 10 0.52447352 0.53234388 0.53948889 0.54694807 0.55428742 0.5570668 11 0.55742409 0.55708092 0.55563978 0.55512988 0.55751761 0.55734902 12 0.55704969 0.55604853 0.55380214 0.55336246 0.55301163 0.5523563 13 0.55338795 0.55317442 0.55323051 0.55324125 0.5523358 0.55160691 14 0.55142772 0.55159594 0.55145986 0.55194488 0.55173708 0.55203101 15 0.55202058 0.55334707 0.55399442 0.55444219 0.55445855 0.55508723 16 0.55547341 0.55533049 0.55598657 0.55620285 0.55327522 0.5529092 17 0.55168035 0.55068328 0.54855918 0.54696661 0.54499682 0.54381507 18 0.54208058 0.54110671 0.54063732 0.53856725 0.53718209 0.53913951 19 0.53820006 0.53809511 0.5373505 0.5369617 0.53686217 0.53728569 20 0.537085 0.53705846 0.53594808 0.53558063 0.53516502 0.53454486 21 0.53482481 0.53504695 0.53476707 0.53524324 0.53582018 0.53586554 22 0.53548403 0.53575159 0.53626854 0.53734194 0.53771074] 23 24y=[0.49960325 0.5 0.50236868 0.49787355 0.50027388 0.50192477 25 0.50002883 0.49841834 0.49137494 0.4872924 0.48501175 0.48452477 26 0.48416511 0.48732755 0.48857238 0.48726064 0.48981987 0.48964337 27 0.48711656 0.48754802 0.48943747 0.49725302 0.49937664 0.50005056 28 0.50149881 0.49717052 0.49746505 0.49435256 0.4950428 0.49514919 29 0.49683042 0.501481 0.50355248 0.50180016 0.49656151 0.49789271 30 0.49621595 0.4949665 0.49832291 0.49786596 0.49956101 0.49944301 31 0.49875232 0.49866447 0.49619793 0.49412244 0.49481659 0.49860285 32 0.49863151 0.50264035 0.50494196 0.50327903 0.50158683 0.50183504 33 0.50219976 0.50427991 0.50559586 0.50815768 0.50899725 0.50576566 34 0.50516471 0.50555433 0.50601547 0.50374489 0.50683012 0.51067105 35 0.51104722 0.51216755 0.51139123 0.51135835 0.50943899 0.51132737 36 0.51576245 0.51722632 0.51794593 0.51647748 0.51747118 0.51781392 37 0.51681579 0.51851392 0.51821594 0.51979507 0.52063523 0.52161849 38 0.52015475 0.51848465 0.51886102 0.51921718 0.51723932 0.51707397 39 0.51744254 0.51699748 0.51421356 0.51342731 0.50601269 0.49545758 40 0.47980654 0.4625087 0.44554945 0.42666819 0.40828555 0.39327453 41 0.37595659 0.35729722 0.33988657 0.3229967 0.30653732 0.29480075 42 0.28736349 0.2849781 0.28581032 0.28668099 0.28725835 0.2884469 43 0.27126954 0.25462327 0.23808663 0.22166457 0.20635546 0.18824046 44 0.18862975 0.18765198 0.18713169 0.18616881 0.18598659 0.17727574 45 0.16595483 0.17615482 0.18802018 0.20326886 0.22286851]

試したこと

・オンライン上でGIFの背景を削除するサイトをいくつか使用したが、背景では無い部分まで透過させてしまうので、断念した。
・Pythonでの実装方法を調べたが、少し実現したい事とは異なるページしか出なかった。

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

ここにより詳細な情報を記載してください。
Python 3.9

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

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

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

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

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

guest

回答2

0

python

1fig = plt.figure() 2ani = anm.FuncAnimation(fig, update,fargs=(x,y),frames=frame,interval = 20) 3ani.save("animation_test.gif", dpi=200,writer="pillow", savefig_kwargs={"transparent": True, "facecolor": "none"})

別画像との重ね合わせ

bash

1# ImageMagick 2$ convert flower.jpg -compose over animation_test.gif compose.gif

イメージ説明

投稿2023/02/10 15:44

編集2023/02/10 16:12
melian

総合スコア19749

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

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

tshu_m421

2023/02/10 16:05

ご回答ありがとうございます。 大変恐縮ですが、コードを実装し、保存した画像を確認したところ背景の透過を確認できませんでした。 調べた感じ、頂いたご回答で透過を出来そうだと思いましたが、これは私側でのミスですかね。
melian

2023/02/10 16:14

重ね合わせた gif 画像を追加してみました。
tshu_m421

2023/02/11 05:49

出来ました! ありがとうございます!!
guest

0

ベストアンサー

編集しました。

イメージ説明
画像を重ねたaxを渡して、そこにプロットするようにすればOKです。

python

1def update(i, ax, x, y, frame): 2 plt.grid(linestyle="dashed", linewidth=0.5) 3 plt.xlim(0.2, 0.8) 4 plt.ylim(0.2, 0.8) 5 ax.plot(x[1:i], y[1:i], "b") 6 print(f"{i} / {frame}")

python

1frame = len(x) 2fig = plt.figure() 3ax = fig.add_subplot() #追加 4ax.set_axis_off() # 追加 5im = Image.open("syachiku.png") # 追加 6ax.imshow(im, extent=(0.2, 0.8, 0.2, 0.8), alpha=0.6) # 追加 7ani = anm.FuncAnimation(fig, update, fargs=(ax, x, y, frame), frames=frame, interval=20)

投稿2023/02/10 15:14

編集2023/02/10 16:02
TaroToyotomi

総合スコア1430

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

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

tshu_m421

2023/02/10 15:33 編集

早速のご回答ありがとうございます。 すみません。ご回答いただいたところ、大変恐縮ですが、実現したい事とは異なっています。 実現したい事といたしましては、GIFの背景を透過させた状態で保存したいです。 他の画像と重ね合わせた時に、添付していただいた画像の青線の移動が見えつつ、他の画像も見えている状態を作りだしたいのです。 ご回答いただいたコードを実装したところ、背景の透過は確認出来ませんでした。
tshu_m421

2023/02/11 05:51 編集

ご回答いただいた方法で出来ました! ありがとうございます!! 一番最初に回答いただきましたので、ベストアンサーにしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問