20行代码,如何用Python将 “妹子图” 制成好玩儿的gif动态图?

2023-10-09 11:40

本文主要是介绍20行代码,如何用Python将 “妹子图” 制成好玩儿的gif动态图?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

337e1def5a0a9f83215273aa570c912e.png

大家好,我是辰哥~

今天教大家用20行代码+多张图片制作 gif动态图

(文末附完整代码+素材)

前言

本文有很多超实用的小知识点,你看完这篇文章,不仅仅收获一项技能,你收获的还有很多不同的知识。

78fbaf8a03aac6d95515af4df4402786.png

斗图一直是群里面的朋友最喜欢的活动,也确实很有意思,但是那都是别人做的。如果我自己想制作一个动态图,怎么办呢?比如说,将自己的男(女)朋友的照片,也做成一个gif动态图,再附带上一些文字,是不是超有趣!

制作之前的原始图片如下:

87d542025ac57990d768114532bdd1dc.png

制作以后的gif动态图如下:

e7e1e3529a23dc9a26b06e86282190ff.gif

可以看到上述gif图,切换的速度很快,我们也可以适当的放慢这个速度,是不是很有意思。

88569c13da44a2f4494cd8944c4f0f29.gif

事实上,我们也可以给图片添加文字,那样这个gif图循环播放的时候,就会有不同的字。出于文章篇幅的原因,给图片添加文字,就留着大家下去思考。

赶紧去微信使用自己制作的gif图吧!

gif图制作流程

那么这样一个gif动态图,是怎么制作的呢?现在我就带着大家一步步剖析。我目前使用的jupyter notebook为大家讲解,所以我会尽量将每个知识点,讲述的很细化。

1)获取当前的工作路径
path = os.getcwd()
print(path)

结果如下:

e92b4aa5afd6ce0e9798bbc43d9d38ea.png

2)获取当前工作路径下的文件列表
file_list = os.listdir(path)
print(file_list)

结果如下:

700662f8df51de5430cb4c2f3511d270.png

3)复制一个列表

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

png_list = file_list.copy()
print(png_list)

结果如下:

3bd0bceff492dd02cbbcd6d9ea522a31.png

4)移除结尾不是png的文件,只保留结尾都是png的文件

如果你的图片都是jpg结尾的,这里都换成jpg,因为我的图片都是png结尾的。同时这里介绍了列表的remove()方法,具体细节大家还是自行下去百度。

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

结果如下:

5e866864682aa694cd1f83bcd24966c8.png

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

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

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

结果如下:

b74421822b72fb189d83dbe434fb4297.png

6)拼接得到每张图片的绝对路径
for png in png_list:image_path = os.path.join(path, png)print(image_path)

结果如下:

6c2e9174c067fd6d174835490d2b9ba3.png

7)获取每张照片的RGB通道值,将7张照片的RGB通道值,保存在列表中
for png in png_list:image_path = os.path.join(path, png)frames.append(imageio.imread(image_path))
print(len(frames))

结果如下:

d6dd94c48fbf64514186cbe09713f24a.png

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

关于imageio库的相关用法,大家需要自行下去学习。我这里只能是抛砖引玉,授人以鱼不如授人以渔。

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

获取源码

完整代码+素材已打包好,两步即可获得。

1、点击下方名片,关注公众号Python工程师非本号
2、回复关键词:gif

👆点击关注「Python工程师」👆

- EOF -

推荐阅读  点击标题可跳转

1、Pandas vs SQL

2、推荐一款好用且能兼职赚钱的自动化工具 - Hamibot

3、腾讯公布 23 年前第一间办公室照片,太有年代感了

4、研究所月入两万,是一种什么体验!

觉得本文对你有帮助?请分享给更多人

点赞和在看就是最大的支持❤️

这篇关于20行代码,如何用Python将 “妹子图” 制成好玩儿的gif动态图?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/172590

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统