python gif转jpg_Python3 实现 gif 倒放,多张图片生成 gif

一个娱乐代码,将表情包 gif 倒放很搞笑,当成自己的一个小玩具,操作就是将图片读取成帧,倒排合并一下,成为新的图片,完成。

效果:翻转前 1460000021342164 翻转后 1460000021342165

代码如下:# encoding: utf-8

from PIL import Image, ImageSequence

# 读取GIF

im = Image.open("nba.gif")

# GIF图片流的迭代器

iter = ImageSequence.Iterator(im)

index = 1

# 遍历图片流的每一帧

for frame in iter:

print("image %d: mode %s, size %s" % (index, frame.mode, frame.size))

frame.save("./images/frame%d.png" % index)

index += 1

# frame0 = frames[0]

# frame0.show()

# 把GIF拆分为图片流

imgs = [frame.copy() for frame in ImageSequence.Iterator(im)]

# 把图片流重新成成GIF动图

# imgs[0].save('out.gif', save_all=True, append_images=imgs[1:])

# 图片流反序

imgs.reverse()

# 将反序后的所有帧图像保存下来

imgs[0].save('./reverse_out.gif', save_all=True, append_images=imgs[1:])

另外极简版更简单# encoding: utf-8

from PIL import Image, ImageSequence

im = Image.open(r'./nba.gif')

sequence = []

for f in ImageSequence.Iterator(im):

sequence.append(f.copy())

sequence.reverse()

sequence[0].save(r'./r-nba.gif',save_all = True, append_images=sequence[1:])

将多张静态图片生成 gif 的代码,这个年底可以将每年的图片合并成一个大的 gif 以留作回忆,倒是很有用的# coding=utf8

import imageio

import os

path = '../images'

filenames = []

for files in os.listdir(path):

if files.endswith('jpg') or files.endswith('jpeg') or files.endswith('png'):

file = os.path.join(path,files)

filenames.append(file)

images = []

for filename in filenames:

images.append(imageio.imread(filename))

imageio.mimsave('movie.gif', images, duration = 0.3)

原作者不建议使用 image2gif 包,详见一楼回答

当然如果你有需求将一组尺寸一样的照片生成 gif,可以邮箱 hexiaodong1992@outlook.com

参考链接:

少年,你一定渴望--> 知识的源泉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值