使用 Pillow 快速创建 GIF 动图

来源:互联网   
责任编辑:王强
字体:

原标题:使用 Pillow 快速创建 GIF 动图

之前有篇推文分享了如何在 Matplotlib 中生成 GIF 可视化图表,有一定的限制。本文将介绍如何用 Pillow 创建 GIF,可以将任意多张图片组合在一起,成为一张可播放的 GIF 图。

这种方式的适用场景更多,而且 PyPI 上也没有专门的库可以生成 GIF,所以推荐大家收藏本文的代码。

什么是 GIF 图?

GIF(“图形交换格式”)是一种位图图像格式,于1987年开发。

GIF基本上是一系列具有不同设置的图像,例如:

  • 循环播放
  • 每帧的持续时间(图片)
  • 其他…

GIF 也可以是静态图像。

Pillow

Pillow 是 Python 图形处理库 PIL 的一个分支,引入了许多更改和增强功能,以使API易于使用或处理更多图像格式和要求。支持打开、处理和保存多种不同格式的图片文件。

利用 Python 生成 GIF 安装 Pillow

第一步,我们需要先安装 Pillow:

  1. pip install Pillow
生成 GIF

我们生成一张红球往下坠落的 GIF 动图,作为文章示例。

首先,编写一个函数,利用 Pillow 在一张图片上画一个红球。

  1. from PIL import Image, ImageDraw
  2. def create_image_with_ball(width, height, ball_x, ball_y, ball_size):
  3. img = Image.new("RGB", (width, height), (255, 255, 255))
  4. draw = ImageDraw.Draw(img)
  5. # draw.ellipse takes a 4-tuple (x0, y0, x1, y1) where (x0, y0) is the top-left bound of the box
  6. # and (x1, y1) is the lower-right bound of the box.
  7. draw.ellipse((ball_x, ball_y, ball_x + ball_size, ball_y + ball_size), fill="red")
  8. return img

上述代码中,我们使用 Image.new创建了一张 RGB 图片,并设置背景为白色,指定了图片大小。

接着,通过 ImageDraw在图片中的指定参数位置,画了一个红色的圆圈。

所以,我们要做的就是创建多张图片,不断让红球往下坠。

  1. # Create the frames
  2. frames = []
  3. x, y = 0, 0
  4. for i in range(10):
  5. new_frame = create_image_with_ball(400, 400, x, y, 40)
  6. frames.append(new_frame)
  7. x += 40
  8. y += 40
  9. # Save into a GIF file that loops forever
  10. frames[0].save("moving_ball.gif", format="GIF", append_images=frames[1:], save_all=True, duration=100, loop=0)

解释下上面的代码:

  1. 初始化一个空列表 frames ,以及 0点坐标 x 和 y
  2. 用一个运行十次的 for 循环,每次创建一张 400x400 大小的图片,图片中红球的位置不同
  3. 更改红球的坐标,让红球沿着对角线往下坠
  4. 设置参数 format="GIF", append_images=frames[1:],保存 GIF 图片
    • 每帧图片播放100毫秒( duration=100)
    • GIF图片一直重复循环( loop=0,如果设置为 1,则循环1次,设置为2则循环2次,以此类推)

最终生成的 GIF 图大概是下面这样的:

参考链接:http://blog.zhaytam.com/2018/08/21/creating-gifs-using-python-pillow/

回复关键词「m

返回好心游戏,查看更多

为您准备的好内容:

www.haoxyx.com true http://www.haoxyx.com/gamehtml/487512/346892046.html report 3439 原标题:使用Pillow快速创建GIF动图之前有篇推文分享了如何在Matplotlib中生成GIF可视化图表,有一定的限制。本文将介绍如何用Pillow创建GIF,可以将任意多张图片组合在一起,成为一张可播放的GIF图。这种方式的适用场景更多,而且PyPI上也没有专门的库可以生成GIF,所以推荐大家收藏本文的代码。什么是GIF图?GIF(“图形交换格式”)是一种位图图像格式,于1987年开发。
搞笑段子:我根本不敢搞笑段子:一个长途汽搞笑段子:这二逼要是搞笑GIF:不好意思搞笑GIF趣图:妹子搞笑GIF:看到两个笑话:风情万种的女人现代大学里最常说的几搞笑GIF趣图:美女九阴真经之男人追女人暴汗 !经典口误大全你喜欢那种嘴上说得巨爆笑GIF:咔嚓一下爆笑GIF:哈哈哈,男生在道歉时,是不是神回复集锦:宠物拥有昨晚在餐厅吃饭,看到开心笑话:彩票与婚姻爆笑GIF:妹子非得开心笑话:一样开心笑话:破费要红包表情包图片合集怼人表情包合集|全是爆笑GIF:哈哈哈,戒酒表情包搞笑图片合搞笑段子:我自己创业俏皮可爱的小姐姐,微让人一看就心动的外国当女生做这个手势的时搞笑gif:新娘子,在经过多次失败的相亲狗子:来人啊,这里跑搞笑gif:这么大一搞笑gif:平时让你搞笑gif:有个不靠暗恋的男生说我黑,气搞笑gif:一直以为【被窝段子20191狗子生气了,拖着狗窝新版守株待兔爆笑GIF:大叔不要爆笑GIF:媳妇,你爆笑GIF:大姐你能爆笑GIF:姑娘还想爆笑GIF:这么多大我和他才认识不久,他爆笑GIF:老板,你幽默笑话:后桌女生当三江锅逗你笑之《讨债?爆笑GIF趣图:姑?爆笑GIF趣图:姑搞笑GIF图:妹纸,搞笑GIF图:我麻了搞笑GIF图:姑娘这搞笑GIF图:我想问搞笑GIF图:姑娘,搞笑GIF图:最萌升搞笑GIF图:小姐姐搞笑GIF图:有多少搞笑GIF图:骑马的美女相亲亮口技以为是幽默笑话:老婆近视眼每日廉政心语|贪赃纳搞笑GIF趣图:敢拿不要心存侥幸,躲过去搞笑GIF图:美女你搞笑GIF图:大哥你美女告诉小伙彩礼“三美女隔一两天就找邻居用叉子喝可乐赢汽车,盘点10个让人哭笑不惊了!双11的优惠现\"see eye 姑娘回家,结果被物业搞笑GIF趣图:学舞搞笑GIF:女朋友给搞笑GIF趣图:能把李姐笑话:本人暑假在李姐笑话:我姑就是单李姐笑话:我小时候有搞笑GIF图:一名人李姐笑话:都说女人拜爆笑GIF趣图:当初【搞笑GIF动态图】GIF搞笑趣图:你别搞笑GIF趣图:完美冰心作文丨我家的“调搞笑GIF趣图:女朋明星原名叫什么?岳云搞笑GIF趣图:又当搞笑GIF趣图:小姐段子:大学经历对许多段子:越漂亮的小姑娘幽默笑话:同学上课玩段子:我的脸盲症很是段子:失败是成功之母搞笑GIF图:美女你笑话大全:科学家说做段子:说,是一种能力爆笑段子:大王打算把幽默笑话:小学时上课搞笑gif趣图: 我幽默笑话: 你必须要段子:还是离吧这娘们笑话大全:昨天梦到前段子:为什么冬天女的笑话大全:男朋友特别搞笑gif:听说身材搞笑gif:手捅蜂窝搞笑GIF图:你跟你幽默笑话:男朋友过生爆笑GIF图:女朋友幽默笑话:上小学,有幽默段子:昨天带女朋笑话段子:铁扇公主申哈哈哈哈现在聊天都是哈哈哈真正的队友神补笑话段子:家里就我没搞笑段子:老爸在客厅幽默段子:上初中的时萌萌的壁纸23333今日の表情推荐,10搞笑GIF趣图:女生幽默笑话:今天看到有爆笑gif:带妹玩儿兄弟, 这边建议你把搞笑GIF:我把你当笑话:你俩如果在一块我这是心疼你 经典搞笑能力糗事,幽默笑话:昨晚跟女友开心一笑:今天我们就幽默笑话:你把他打傻
热门推荐
首页推荐
热门图片
最新添加资讯
24小时热门资讯
精彩资讯
精彩推荐
热点推荐
真视界
精彩图片
社区精粹
关于本站 | 广告服务 | 手机版 | 商务合作 | 免责申明 | 招聘信息 | 联系我们
Copyright © 2004-2017 haoxyx.com All Rights Reserved. 好心游戏网 版权所有
京ICP备10044368号-1 京公网安备11010802011102号