Python快速生成gif图

前言

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还提供了许多方便的接口,有兴趣的可以去了解一下.

  • 27
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Python可以使用多种库来生成动画片,其中最常用的是matplotlib和Pillow库。下面是使用这两个库生成动画片的简要介绍: 1. 使用matplotlib库生成动画片: - 首先,你需要安装matplotlib库。可以使用pip命令进行安装:`pip install matplotlib` - 导入所需的模块:`import matplotlib.pyplot as plt` - 创建一个形对象:`fig = plt.figure()` - 在子中绘制动画的每一帧:`ax.plot(x, y)`,其中x和y是你要绘制的数据 - 使用`FuncAnimation`函数创建动画对象:`anim = FuncAnimation(fig, update, frames=range(num_frames), interval=100)` - 定义一个更新函数`update`,用于更新每一帧的内容 - 使用`plt.show()`显示动画 2. 使用Pillow库生成动画片: - 首先,你需要安装Pillow库。可以使用pip命令进行安装:`pip install pillow` - 导入所需的模块:`from PIL import Image, ImageDraw` - 创建一个像对象:`image = Image.new('RGB', (width, height), (255, 255, 255))` - 创建一个绘制对象:`draw = ImageDraw.Draw(image)` - 在每一帧中绘制像内容:`draw.rectangle((x1, y1, x2, y2), fill=color)`,其中(x1, y1)和(x2, y2)是矩形的对角线坐标,color是填充颜色 - 保存每一帧的像:`image.save('frame.png')` - 使用PIL库的`ImageSequence`模块将所有帧合成为动画:`frames = [Image.open('frame{}.png'.format(i)) for i in range(num_frames)]`,然后使用`frames.save('animation.gif', save_all=True, append_images=frames[1:], duration=100, loop=0)`保存为GIF动画

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

修炼之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值