如何使用Python快速生成gif图

作者:修炼之路 时间:2021-08-24 18:38:43 

前言

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)

如何使用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&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')

如何使用Python快速生成gif图

截图和读取粘贴板的图片

#截屏
   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()))

如何使用Python快速生成gif图

在使用imageio读取视频的时候可能会报上面的错误,提示需要安装ffmpeg,可以根据提示进行安装即可.除此之外,imageio还提供了许多方便的接口,有兴趣的可以去了解一下.

来源:https://xiulian.blog.csdn.net/article/details/85145488

标签:python,生成,gif动画
0
投稿

猜你喜欢

  • 详解pandas.DataFrame.plot() 画图函数

    2021-06-02 21:41:49
  • 详细解读Python中解析XML数据的方法

    2021-08-18 11:56:24
  • 如何查看python中安装库的文件位置

    2021-04-17 04:09:31
  • Django 如何从request中获取前端数据

    2023-06-22 06:52:16
  • Python面向对象之多态原理与用法案例分析

    2023-08-16 00:09:59
  • 详解Python验证码识别

    2023-11-12 23:46:40
  • 如何利用python 读取配置文件

    2023-11-08 14:40:21
  • ASP所有的Session变量获取实现代码

    2011-03-11 10:44:00
  • Python 用__new__方法实现单例的操作

    2023-05-22 08:22:41
  • 全屏窗无提示关闭父窗口

    2013-06-30 05:41:36
  • python使用re模块爬取豆瓣Top250电影

    2023-10-11 17:28:38
  • win10下安装Anaconda的教程(python环境+jupyter_notebook)

    2023-11-27 13:27:08
  • php+html5基于websocket实现聊天室的方法

    2023-11-15 06:58:58
  • VB应用程序访问SQL Server的常用方法

    2009-01-21 14:28:00
  • Python发送http请求解析返回json的实例

    2022-04-11 03:38:28
  • python运行cmd命令行的3种方法总结

    2023-07-15 18:40:49
  • PHP PDOStatement::nextRowset讲解

    2023-06-06 07:18:28
  • MySQL优化之数据表的处理

    2008-12-22 14:45:00
  • flask-socketio实现前后端实时通信的功能的示例

    2021-02-18 22:18:35
  • python 如何将数据写入本地txt文本文件的实现方法

    2021-05-02 14:11:52
  • asp之家 网络编程 m.aspxhome.com