点击上方"日常学python",选择"置顶公众号"

第一时间关注 Python 技术干货!

阅读文本大概需要 5 分钟。

前段时间,一只可爱的小黄鸭火起来了,据说是抖音上一位黄衣小姐姐模仿小黄鸭的动作而走红。这只动作呆萌的小黄鸭表情包也跟着火起来了,小黄鸭表情包也由一只变成多只,颜色也变幻莫测。

作为一个合格的程序猿,我们怎么能落后,我们要做出符合程序猿标志的小黄鸭,我们把小黄鸭的动态图变成字符型的小黄鸭动态图。直接上图,一张原版小黄鸭图,一张程序猿标志的字符型小黄鸭。ps:字符画图离远点看可能更有效果哦!

这个程序怎么做呢?不要急,我给你分析下这个程序怎么实现。

程序步骤

实现字符动态图转化只需要 3 步,合久必分,分久必合。

把原动态图拆分成一帧一帧的图片。

把拆分的每帧图片转化为字符画。

把每帧字符画图片组合成动态图。

程序环境

语言:Python 3.6编辑器:Pycharm

第三方库安装

运行程序前,我们需要安装两个重要的库,第一个是 Imageio,它是一个 Python 库,提供了一个简单的界面来读取和写入各种图像数据,包括动画图像,体积数据和科学格式。 它是跨平台的,可在 Python 2.7 和 3.4+ 上运行,并且易于安装。

用 pip 命令可以快速安装,因工作需要,我电脑装了 Python2.7 和 Python3.6 两个版本,我用数字对不同版本进行了区分,如果你的电脑只安装了一个版本,可以把前面 python3 -m 命令去掉,直接用 pip 后面的命令即可。

python3 -m pip install imageio

需要安装的第二个库是 opencv-python 库,OpenCV 是一个基于 BSD 许可(开源)发行的跨平台计算机视觉库,可以运行在 Linux、Windows、MacOS 操作系统上。它轻量级而且高效——由一系列 C 函数和少量C++类构成,同时提供了 Python、Ruby、MATLAB 等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。简言之,通过 openCV 可实现计算机图像、视频的编辑。广泛应用于图像识别、运动跟踪、机器视觉等领域。

python3 -m pip install opencv-python

导入编辑器

把上面安装好的两个库在编辑器 Pycharm 的 settings/Interpreter 中安装好并在程序中导入,说明下,opencv-python 这个库这次只用到其中的 cv2 模块,所以只需导入这个模块。

import imageioimport cv2

拆分图片

先定义好原始图片和处理后的图片的保存路径,这个大家运行程序前需要换成你自己需要转化的图片路径和转换后字符画图片的路径和名称。然后用 imageio 中的 mimread 方法读取原动态图,把动态图每帧都拆分成若干张图片。

转化为字符画

应用上面定义好的图片灰度与字符的映射,把上面的每帧图片都转化为字符画,并保存在一个列表中。

串联字符画为动态图

最后把刚才处理好的每帧的字符画通过 imageio 库里的 mimsave 方法组合成动态图,变成字符动态图。

imageio.mimsave(dealPic, A, 'GIF', duration=0.1)   # 把A列表里的字符画组合起来,变成动态图print('转化完成,请到你保存的路径下查看')

通过这个程序,我们就可以把我们喜欢的图片变成字符画动态图。下面这个用本程序制作的字符画大家知道是谁吗?欢迎在下方小程序的留言区告诉我。

觉得不错,点赞、转发朋友圈都是一种支持。

推荐阅读:

字符画君君C语言,20行代码制作字符画版小黄鸭表情包 | 文末送书抽奖结果相关推荐

  1. python画动态小黄鸭_20行代码制作字符画版小黄鸭表情包

    前段时间,一只可爱的小黄鸭火起来了,据说是抖音上一位黄衣小姐姐模仿小黄鸭的动作而走红.这只动作呆萌的小黄鸭表情包也跟着火起来了,小黄鸭表情包也由一只变成多只,颜色也变幻莫测.pk 哥的技术交流群前段时 ...

  2. 学弟啊,你代码能不能不要写得这么烂?!--文末送书

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 作者:沙漠之鹰 www.cnblogs.com/buptzym/archive/2013/05/25/3099389.html 今日封面图 ...

  3. 程序员想干一辈子行不行?只要学会这些软技能就够了|文末送书

    " 程序员这个职业能干一辈子吗? " 知乎上关于这个问题的讨论,答案似乎不容乐观.要么是过了35岁不转型不行:要么年纪越大越学不动:还有公司上升空间有限,不进则退. 总之,程序员想 ...

  4. 10行代码制作群聊提醒小助手,再也不怕漏掉消息了

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 胸中有誓深于海,肯使神州竟陆沉? ...

  5. 【R语言-20行代码】牛顿迭代法求伽马函数极大似然估计法的参数估计

    简述 研究了下计算公式,简化了一下,用r语言实现了. 算法解释 牛顿迭代法 xk+1=xk−f(xk)f′(xk)x_{k+1} = x_k - \frac{f(x_k)}{f'(x_k)}xk+1​ ...

  6. C语言200行代码写一个贪吃蛇小游戏

    先看一眼主程序 一般小游戏的大致框架就是这个样子,这里主要分成画面的显示,与用户相关的更新,与用户无关的更新等三个部分.(完整代码附于文末) int main(int argc, char *argv ...

  7. (文末送书)字符数组与字符串

    字符数组与字符串 引言 字符数组的定义与初始化 字符串的概念与存储 常用的字符串处理函数 送书福利 引言 前面介绍的一维数组与二维数组都是以数值型为例,其实数组中也可以存储字符型数组,称为字符数组.字 ...

  8. 文末送书丨深度解读,人是如何在一瞬间理解语言的?

    大家好我是崔庆才. 今天发的这篇分享是来自于我的一位指导老师同时也是我的非常好的朋友 -- 宋睿华博士在智源大会上关于<我们赖以生存的意义和超大规模多模态预训练>的报道. 宋老师是我之前在 ...

  9. 【你会用代码画年兽吗】20行代码使用JS实现虎年春节倒计时 —— 红红火火过虎年

最新文章

  1. MySQL Transaction--快照读和当前读
  2. Eigen::Map
  3. C# 模拟 鼠标 键盘操作
  4. 网页浏览器知道我们的哪些信息?(1)
  5. No.3 - CSS transition 和 CSS transform 配合制作动画
  6. window.showModalDialog模式窗口无法在子窗口访问解决办法
  7. conda清华源安装pytorch依旧慢踩坑
  8. 几时几分几秒怎么写_头总是一阵一阵眩晕是怎么回事?眩晕症该如何治疗?
  9. 强化学习 —— gym
  10. 2018/3/27 省选模拟赛 140分
  11. 文档对象模型(DOM)
  12. oracle取较小数,oracle 取小数位数
  13. java xlsm_使用apache poi写入xlsm(Excel 2007)
  14. error: RPC failed; curl 55 OpenSSL SSL_write: SSL_ERROR_ZERO_RETURN, errno 10053
  15. 根轨迹图、Bode图、Nyquist图的Matlab仿真
  16. Linux - iptable(防火墙)
  17. LogicFlow(Vue3)
  18. git --reset hard命令回退版本后恢复
  19. HashMap,ArrayMap,SparseArray 源码角度分析,Android中的数据结构你该如何去选择?
  20. [Simulink] 基于模型的测试与验证学习笔记_Step 4:Testing By Simulation

热门文章

  1. echarts实现中国地图,山西地图,图表面积图配置项
  2. 海康威视视频ocx控件开发总结
  3. 使用正则匹配iframe标签
  4. Cisco ASA防火墙——远程控制与多安全区域
  5. PolSARpro v5.1.3 处理Sentinel-1A SLC数据
  6. Network (哈工大网课笔记)
  7. 实战分享|作为AI小白,如何争取AI产品经理offer
  8. 计算机主机检测不到耳机,win10电脑检测不到耳机怎么办_win10电脑检测不到耳机如何解决-系统城...
  9. 计算机二级access通过技巧,2017年计算机二级Access应试技巧
  10. 【React】React介绍环境搭建