微信斗图

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

假如有这样一组图片:

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

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

制作过程

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

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

import os
import imageio

1. 获取当前的工作路径

path = os.getcwd()
print(path)

结果如下:

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

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

结果如下:

3. 复制一个列表

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

png_list = file_list.copy()
print(png_list)

结果如下:

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

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

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

结果如下:

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

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

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

结果如下:

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

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

结果如下:

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

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

结果如下:

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

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

Python模块 | 这份os模块知识详解,太牛逼!

E N D

各位伙伴们好,詹帅本帅假期搭建了一个个人博客和小程序,汇集各种干货和资源,也方便大家阅读,感兴趣的小伙伴请移步小程序体验一下哦!(欢迎提建议)

推荐阅读

牛逼!Python常用数据类型的基本操作(长文系列第①篇)

牛逼!Python的判断、循环和各种表达式(长文系列第②篇)

牛逼!Python函数和文件操作(长文系列第③篇)

牛逼!Python错误、异常和模块(长文系列第④篇)

微信群「斗图」总输,Python助我超神!相关推荐

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

    本文转自:数据分析与统计学之美 微信斗图 微信斗图,大家最喜欢的就是发布Gif动图了.它的原理其实很简单,就是一帧一帧的图片拼接在一起,组合而成的.当他们来回切换的速度很快时,就相当于在看电影. 假如 ...

  2. 群里又会python的吗_自从会了Python在群里斗图就没输过,Python批量下载表情包!...

    原标题:自从会了Python在群里斗图就没输过,Python批量下载表情包! 导语 最近图慌,于是随便写了个表情包批量下载的脚本,没什么技术含量,纯娱乐性质. 让我们愉快地开始吧~ 开发工具 Pyth ...

  3. 微信上线「行程查询」服务;钉钉 CEO 回应被打「一星」;Go 1.14 发布 | 极客头条...

    整理 | 屠敏 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注 ...

  4. Python 爬取表情包-斗图不会输在起跑线

                   Python 爬取表情包-斗图不会输在起跑线 对于酷爱聊天的朋友来说,表情包应该是他们心中的灵魂,没有图的聊天只能算虾扯蛋了.图片(表情包)赋予了聊天更多的内涵,很多时候 ...

  5. 清华「计图」迎来重大更新:支持热门的可微渲染,多项CV任务速度超越PyTorch...

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 想研究可微分渲染,却担心找不到合适的框架? 现在,官方支持可微分渲染的深度学习框架来了: 清华自研的「计图」 (Jittor)深度学习框架, ...

  6. 磁珠 符号_圆形磁珠规格常用指南「多图」

    圆形磁珠规格常用指南「多图」[磁丰电子6a0ab91]磁珠基础知识大全,如何选择磁珠磁珠滤波的道理磁珠的特性磁珠基础知识大全,如何选择磁珠 首先,什么是磁珠?磁珠具有非常高的电阻率和磁导率.它们相当于 ...

  7. 封闭式学计算机的学校,叛逆孩子全封闭式教育学校-正规学校「多图」

    叛逆孩子全封闭式教育学校-正规学校「多图」[一鸣b8037d1] 坚决杜绝打骂体罚学员.以心理辅导和激励赏识教育为主,体验式教育为辅.唤醒学员内心的善良和上进心.引导学员完成由外到内的转变.通过体验式 ...

  8. 跟着鬼哥学爬虫-5-更新妹子图库质量,提高微信群聊发图速度

    跟着鬼哥学爬虫-5-更新妹子图库质量,提高微信群聊发图速度 第三篇中的图库,群里大家都说质量稍微次一点,现在重新爬了个网站更新一下. 比上一篇的代码也优化了一点,对于自动保存的文件名,采用数字方式直接 ...

  9. 有了这个方法群聊斗图你就不会输了(Python imageio制作gif动图)

    原文链接:http://www.juzicode.com/python-funny-imageio-make-gif 先说需要用到的3个模块,imageio用来读写图像文件.imageio-ffmpe ...

最新文章

  1. 【常用】细数那些常用的linux命令(只针对更新前端代码、上传文件到linux服务器)
  2. RStuido Server 选择不同的 R 版本(conda 中的不同 R 版本)
  3. 华为新机搭载鸿蒙os,华为5G巅峰之作:2K超清屏幕+鸿蒙OS2.0+3D结构光 颜值与性能并存...
  4. 安装博图v15每次让重启计算机,博途V15.1安装及无限重启和.net3.5SP1错误处理解决方法...
  5. ar 和 nm 用法
  6. Linux基础(1)--Vim编辑器的常用命令
  7. 互联网项目架构经验分享
  8. C#从入门到精通源码资源汇总下载(全部免积分)
  9. java 项目启动后页面乱码_java生成的Html打开后展示乱码
  10. Java 如何生成 UUID
  11. 详细分析《三合一收款码》后台程序识别原理
  12. Metricbeat监听容器CPU利用率,内存等使用情况,发送给ElasticSearch并展示在kibana
  13. Heartbeat介绍
  14. reference to ‘ max‘ is ambiguous
  15. mysql 体重 类型 身高_用身高和体重数据进行分类实验
  16. Oracle之排序会影响rownum混乱的问题
  17. 完美解决:*.vmx是由VMware产品创建,但该产品与此版VMware workstation不兼容因此无法使用…
  18. python list中的sort()简单用法与lambda的使用
  19. PRTG网络监控软件
  20. 可视化导论 - 第五章 时空数据可视化 - 学习笔记

热门文章

  1. Java 定时任务调度(8)--ElasticJob 入门实战(ElasticJob-Lite使用)
  2. java中List与Map的使用
  3. python效率提升_Python GUI开发,效率提升10倍的方法!
  4. 小甲鱼python的课后题好难_小甲鱼《零基础学习Python》课后笔记(二十六):字典——当索引不好用时2...
  5. 使用轮转算法求时间片_彩票调度算法,让进程们拼手气? --当操作系统遇上随机算法...
  6. 重构碎片化知识_知识碎片化时代,如何妙用思维导图,提高你的学习效率(含福利)...
  7. win7与linux共享文件夹共享,Ubuntu+Win7+Samba实现文件共享
  8. php 本地mysql 代码_基于本地数据库的 IP 地址查询 PHP 源码
  9. java 下载二进制文件_使用Java从Github下载二进制文件
  10. 移动硬盘上划分linux分区,Linux下磁盘分区和移动硬盘的挂载方法有哪些?