前言
gif图就是动态图,它的原理和视频有点类似,也是通过很多静态图片合成的.本篇文章主要介绍,如何利用Python快速合成gif图,主要利用Python的第三方库imageio
imageio介绍
imageio提供了很多方便读写图片的接口、包括读取网络图片、读取视频、生成gif图等。imageio提供许多的接口,imageio API,和示例程序
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)
通过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)
再使用url读取图片的时候可能会报seek的错误,这时候可以改成下面的形式
url = "https://timgsa.baidu.com/timg?image&quality=80&size=
b9999_10000&sec=1545324012100&di=77a4ba3d60cdfc60
d161bd6ed97c2319&imgtype=0&src=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')
截图和读取粘贴板的图片
#截屏
img = imageio.imread("<screen>")
#读取粘贴板的图片
img = imageio.imread("<clipboard>")
读取视频
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()))
在使用imageio读取视频的时候可能会报上面的错误,提示需要安装ffmpeg,可以根据提示进行安装即可.除此之外,imageio还提供了许多方便的接口,有兴趣的可以去了解一下.
总结
到此这篇关于如何使用Python快速生成gif图的文章就介绍到这了,更多相关Python快速生成gif图内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!