微信群「斗图」总输,用Python教你做最靓的仔!!!

谁借莪1个温暖的怀抱¢ 2022-08-28 03:50 153阅读 0赞

6413a9f9524799f62b62551f1046770d.png

本文转自:数据分析与统计学之美

微信斗图

微信斗图,大家最喜欢的就是发布Gif动图了。它的原理其实很简单,就是一帧一帧的图片拼接在一起,组合而成的。当他们来回切换的速度很快时,就相当于在看电影。

假如有这样一组图片:

bdd99b73a19e6ba84144d861f5c95dd8.png

如果制作完成后,是这样的:

49288bfb58230e6df14d5e9a3f5c234d.gif

还是挺有意思的,如果换成你女友的照片,制作后发给她,肯定对你很崇拜。

制作过程

整个制作流程很简单,共分为7步。

这里首先导入需要使用的2个库。

  1. import os
  2. import imageio

1. 获取当前的工作路径

  1. path = os.getcwd()
  2. print(path)

结果如下:

9c13fe304ac32412d26b2b7111f1cac9.png

2. 获取当前工作路径下的文件列表

  1. file_list = os.listdir(path)
  2. print(file_list)

结果如下:

978c2f07fb5b9048b5e5f6975e358b2f.png

3. 复制一个列表

这里介绍的是列表的copy()方法,大家可以自行下去对比学习它与deepcopy()方法的区别。

  1. png_list = file_list.copy()
  2. print(png_list)

结果如下:

c161927435cfb2d711d20bd6786701f0.png

4. 只保留结尾都是jpg的文件

如果你的图片既有jpg,又有png,就需要你在这里加一个判断。

  1. for file in file_list:
  2. if file[-3:]!= "jpg":
  3. png_list.remove(file)
  4. print(png_list)

结果如下:

20a6719267e0e548f8b4e0e023047559.png

5. 将图片文件中的数字,升序排列

可以看到,我这里文件的数字都是1-7排列好的,升序排列后,数字较小的图片,位于gif动态图的最前面。

  1. jpg_list.sort(key=lambda x: float(x[:-4]))
  2. jpg_list

结果如下:

538c759a265c2338b2bacd3a5ab51378.png

6. 拼接得到每张图片的绝对路径

  1. for jpg in jpg_list:
  2. image_path = os.path.join(path, jpg)
  3. print(image_path)

结果如下:

dbc9df9cdf133399311e8dc45598754d.png

7. 获取每张照片的RGB通道值,将7张照片的RGB通道值,保存在列表中

  1. frames = []
  2. for jpg in jpg_list:
  3. image_path = os.path.join(path, jpg)
  4. frames.append(imageio.imread(image_path))
  5. print(len(frames))

结果如下:

e3482d2e5b9e6903677b6530875960ff.png

8. 将图片保存为gif图,设置了切换时间

  1. gif_path = os.path.join(path, "my_gif.gif")
  2. imageio.mimsave(gif_path, frames, 'GIF', duration=0.2)

推荐阅读:

入门: 最全的零基础学Python的问题 | 零基础学了8个月的Python | 实战项目 |学Python就是这条捷径

  1. 量化: 定投基金到底能赚多少钱? | 我用Python对去年800只基金的数据分析

干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析| 从万众期待到口碑扑街!唐探3令人失望 | 笑看新倚天屠龙记灯谜答题王 |用Python做个海量小姐姐素描图碟中谍这么火,我用机器学习做个迷你推荐系统电影

趣味:弹球游戏 | 九宫格 | 漂亮的花 | 两百行Python《天天酷跑》游戏!

AI: 会做诗的机器人给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影

小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!| 再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

  • 1).卧槽!Pdf转Word用Python轻松搞定!
  • 2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃
  • 3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密
  • 4).80行代码!用Python做一个哆来A梦分身
  • 5).你必须掌握的20个python代码,短小精悍,用处无穷
  • 6).30个Python奇淫技巧集
  • 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货
  • 8).再见Python!我要学Go了!2500字深度分析
  • 9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片

#

  1. 点阅读原文,领AI全套!

发表评论

表情:
评论列表 (有 0 条评论,153人围观)

还没有评论,来说两句吧...

相关阅读

    相关 如何公众号引流!

    有读者问了一个很宽泛的问题:公众号引流怎么做? 引流的类型 小编列了几种公众号引流类型: 1、为自己引流:以公众号本身的增粉为目的,对公众号进行引流。 2、为应用