ホームページ  >  記事  >  バックエンド開発  >  Pythonでアニメーショングラフィックスを作成できますか?

Pythonでアニメーショングラフィックスを作成できますか?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼オリジナル
2019-06-18 16:10:583486ブラウズ

ImageMagick

は、強力で安定したオープンソースのツールセットおよび開発キットであり、200 を超える基本形式の画像ファイルの読み取り、書き込み、処理に使用できます。 PNG、JPEG、GIF、HEIC、TIFF、DPX、EXR、WebP、Postscript、PDF、SVG として。 ImageMagick を使用すると、Web アプリケーションのニーズに応じて画像を動的に生成したり、画像 (または画像のグループ) にサイズの変更、回転、シャープ化、色の減算、特殊効果の追加などの操作を実行したりすることもできます。操作の結果は同じ形式で表示されるか、別の形式で保存されます。画像の操作は、コマンド ラインまたは C/C、Perl、Java、PHP、Python、Ruby プログラミングを通じて実行できます。 ImageMagic の主な焦点は、パフォーマンス、バグの削減、安定した API と ABI の提供です。

Pythonでアニメーショングラフィックスを作成できますか?

ImageMagick の関数は通常、コマンド ラインを通じて使用されますが、プログラムから使用することもできます。プログラミングでは、G2F (Ada)、MagickCore (C)、MagickWand (C)、ChMagick (Ch)、ImageMagickObject (COM)、Magick (C)、JMagick (Java)、JuliaIO (Julia)、L のインターフェイスを介して呼び出すことを選択できます。 - Magick (Lisp)、Lua (LuaJIT)、NMagick (Neko/haXe)、Magick.NET (.NET)、PascalMagick (Pascal)、PerlMagick (Perl)、MagickWand for PHP (PHP)、IMagick (PHP)、PythonMagick ( Python )、magick (R)、RMagick (Ruby)、または TclMagick (Tcl/TK)。

Windows ダウンロード

アドレス:

http://www.lfd.uci.edu/~gohlke/pythonlibs/#pythonmagick

OS バージョンと Python バージョンに対応する「PythonMagick」whl ファイルをダウンロードし、CMD で完全なファイル名を指定した「pip」パスを使用してインストールします。例:

pip install C:\Users\Student\Desktop\PythonMagick-0.9.12-cp35-none-win_amd64.whl

または anaconda 経由でダウンロード

関連推奨事項: "Python ビデオ チュートリアル"

import sys
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
 
fig, ax = plt.subplots()
fig.set_tight_layout(True)
 
# 询问图形在屏幕上的大小和DPI(每英寸点数)
# 注意当把图形保存为文件时,需要为此单独再提供一个DPI
print('fig size: {0} DPI, size in inches {1}'.format(
 fig.get_dpi(), fig.get_size_inches()))
 
# 绘制一个保持不变(不会被重新绘制)的散点图以及初始直线
x = np.arange(0, 20, 0.1)
ax.scatter(x, x + np.random.normal(0, 3.0, len(x)))
line, = ax.plot(x, x - 5, 'r-', linewidth=2)
 
def update(i):
 label = 'timestep {0}'.format(i)
 print(label)
# 更新直线和轴(用一个新X轴标签)
 # 以元组形式返回这一帧需要重新绘制的物体
 line.set_ydata(x - 5 + i)
 ax.set_xlabel(label)
 return line, ax
 
if __name__ == '__main__':
 # 会为每一帧调用Update函数
 # 这里FunAnimation设置一个10帧动画,每帧间隔200ms
 anim = FuncAnimation(fig, update, frames=np.arange(0, 10), interval=200)
 if len(sys.argv) > 1 and sys.argv[1] == 'save':
  anim.save('line.gif', dpi=80, writer='imagemagick')
 else:
  # Plt.show()会一直循环动画
  plt.show()

Pythonでアニメーショングラフィックスを作成できますか?

注意すべき点が 2 つあります。チャート 点在する点は移動せず、移動するのは直線です。 X 軸のタイトルはフレームごとに変わります。

もっとクールなテーマに変更したい場合は、seaborn ライブラリを使用できます。

 import seaborn

を追加すると、次の GIF が表示されます:

Pythonでアニメーショングラフィックスを作成できますか?

ちょっと注意: ここの GIF には 10 フレームしかなく、グラフィック コンテンツは非常にシンプルですが、各フレームはまだ約 160k です。 GIF アニメーションはクロスフレーム圧縮を使用しないため、比較的長いフレームを持つ GIF 画像は非常に大きくなります。フレーム数を最小限に抑え、各フレームを小さくすると (matplotlib で Figure サイズまたは DPI を調整することで)、多かれ少なかれ、この問題を軽減できます。

以上がPythonでアニメーショングラフィックスを作成できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。