ImageMagick
是一套功能強大、穩定且開源的工具集和開發包,可以用來讀、寫和處理超過200種基本格式的圖片文件,包括PNG,JPEG,GIF,HEIC,TIFF,DPX,EXR,WebP,Postscript,PDF和SVG等格式。利用ImageMagick,可以根據web應用程式的需要動態生成圖片, 還可以對一個(或一組)圖片進行改變大小、旋轉、銳化、減色或增加特效等操作,並將操作的結果以相同格式或其它格式保存,對圖片的操作,既可以透過命令列進行,也可以透過C/C 、Perl、Java、PHP、Python或Ruby程式來完成。 ImageMagic的主要精力集中在效能,減少bug以及提供穩定的API和ABI。
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),or TclMagick (Tcl/TK)。
Windows下載
網址:
http://www.lfd.uci.edu/~gohlke/pythonlibs/#pythonmagick
下載對應OS版本和Python版本的「PythonMagick」whl文件,然後CMD裡面以「pip」路徑whl完整文件名的方法安裝。例如:
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()
有兩點要注意: 圖表中的散點不會動,會動的是直線。 X軸標題每一幀都在變化。
如果你想換個再酷炫點的主題,可以用seaborn庫,只需添加:
import seaborn
那麼就會得到下面這張GIF圖:
稍微提醒一下:雖然我們這裡的GIF圖只有10幀,圖形內容也很簡單,但每一幀仍有160k左右。因為GIF動圖不使用跨幀壓縮,所以這就讓幀比較長的GIF圖變得很大。將幀數盡量減少,並且讓每一幀的圖像再小一點(透過在matplotlib中調整圖形大小或DPI)能或多或少有助於緩解這個問題。
以上是python可以做動圖嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!