python快速生成gif動圖

前言

gif圖就是動態圖,它的原理和視頻有點類似,也是通過很多靜態圖片合成的.本篇文章主要介紹,如何利用Python快速合成gif圖,主要利用Python的第三方庫imageio

imageio介紹

imageio提供了很多方便讀寫圖片的接口、包括讀取網絡圖片、讀取視頻、生成gif圖等。imageio提供許多的接口,

imageio API:https://imageio.readthedocs.io/en/latest/userapi.html

示例程序:https://imageio.readthedocs.io/en/latest/examples.html

imageio安裝

pip install imageio

合成gif圖

import imageio
def compose_gif():
img_paths = ["img/1.jpg","img/2.jpg","img/3.jpg","img/4.jpg"
,"img/5.jpg","img/6.jpg"]
gif_images = []
for path in img_paths:
gif_images.append(imageio.imread(path))
imageio.mimsave("test.gif",gif_images,fps=1)

python快速生成gif動圖

通過fps參數可以控制合成gif圖片播放圖片的速度和視頻的播放幀率是一樣的,fps參數越大播放的速率越大,fps越小播放的速度越慢.

讀取特殊url圖片

  • 讀取imageio的示例圖片
import imageio
import matplotlib.pyplot as plt
def read_special_url_image():
img = imageio.imread("imageio:chelsea.png")
plt.imshow(img)
plt.show()
  • 讀取url的網絡圖片
 url = 'http://upload.wikimedia.org/wikipedia/
commons/d/de/Wikipedia_Logo_1.0.png'
img = imageio.imread(url)
python快速生成gif動圖

在使用url讀取圖片的時候可能會報seek的錯誤,這時候可以改成下面的形式

 url = "https://timgsa.baidu.com/timg?image&quality=80&size=
b9999_10000&sec=1545324012100&di=77a4ba3d60cdfc60
d161bd6ed97c2319&imgtype=0&class="lazy" data-original=http%3A%2F%2Fwww.hxzyt
j.com%2Fthemes%2Ftheme_3%2Fpc%2Fimages%2Fpython%2Fimg_01.jpg"

img = imageio.imread(imageio.core.urlopen(url).read(), '.jpg')
python快速生成gif動圖

截圖和讀取粘貼板的圖片

 #截屏 

img = imageio.imread("<screen>")
#讀取粘貼板的圖片
img = imageio.imread("<clipboard>")
/<clipboard>/<screen>

讀取視頻

def get_video_per_frame():
reader = imageio.get_reader("test.mp4")
for i,im in enumerate(reader):
print("Mean of frame %i is %1.1f"%(i,im.mean()))
python快速生成gif動圖

在使用imageio讀取視頻的時候可能會報上面的錯誤,提示需要安裝ffmpeg

,可以根據提示進行安裝即可.除此之外,imageio還提供了許多方便的接口,有興趣的可以去了解一下.


分享到:


相關文章: