python写抖音网站_用Python生成抖音字符视频!
抖音字符视频在去年火过一段时间。
反正我是始终忘不了那段极乐净土的音乐...
这一次自己也来实现一波,做一个字符视频出来。
主要用到的库有cv2,pillow库。
原视频如下,直接抖音下载的,妥妥的水印。
不过并不影响本次的操作。
/ 01 / 视频转图片
在Pycharm上直接安装cv2库是成功不了的,具体什么原因我也不清楚。
经过我的实践,发现只需在Pycharm的虚拟环境下。
运行下面这个命令,即可成功安装cv2这个库。
pip3 install opencv-python
不过还是会出现下载速度过慢,导致超时。
如果实在不行就可以去官网,下个.whl格式来安装。
视频转图片代码如下。
import cv2
import os
# 在当前目录下新建文件夹
folder_path = "img_bear/"
os.makedirs(folder_path)
# 进行视频的载入
vc = cv2.VideoCapture('bear.mp4')
c = 0
# 判断载入的视频是否可以打开
ret = vc.isOpened()
# 循环读取视频帧
while ret:
c = c + 1
# 进行单张图片的读取,ret的值为True或者Flase,frame表示读入的图片
ret, frame = vc.read()
if ret:
# 存储为图像
cv2.imwrite('img_bear/'+str(c) + '.jpg', frame)
# 输出图像名称
print('img_bear/'+str(c) + '.jpg')
# 在一个给定的时间内(单位ms)等待用户按键触发,1ms
cv2.waitKey(1)
else:
break
# 视频释放
vc.release()
最后成功生成了369张图片。
呆萌呆萌的××熊,我是不知道什么品种的熊...
/ 02 / 图片转字符
普通图片转字符图片主要使用了pillow库。
对图片做灰度处理,然后根据图片像素点的灰度值,添加对应的字符。
具体代码如下。
from PIL import Image, ImageDraw, ImageFont
import numpy as np
import os
# 创建字符图片文件夹
folder_path = "bear/"
os.makedirs(folder_path)
for i in range(1, 1000):
filename = 'img_bear/' + str(i) + '.jpg'
# 字符列表
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~ <>i!lI;:,\"^`'. ")
# 判断图片是否存在
if os.path.exists(filename):
# 将图片转化为灰度图像,并重设大小
img_array = np.array(Image.open(filename).resize((70, 70), Image.ANTIALIAS).convert('L'))
# 创建新的图片对象
img = Image.new('L', (560, 560), 255)
draw_object = ImageDraw.Draw(img)
# 设置字体
font = ImageFont.truetype('consola.ttf', 10, encoding='unic')
# 根据灰度值添加对应的字符
for j in range(70):
for k in range(70):
x, y = k * 8, j * 8
index = int(img_array[j][k] / 4)
draw_object.text((x, y), ascii_char[index], font=font, fill=0)
name = 'bear/' + str(i) + '.jpg'
print(name)
# 保存字符图片
img.save(name, 'JPEG')
最后成功生成了字符图片。
和上面的原图一样,也是369张。
/ 03 / 字符转视频
接下来使用cv2库,将字符图片转化为视频。
具体代码如下。
import cv2
import os
# 设置视频编码器,这里使用使用MJPG编码器
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
# 输出视频参数设置,包含视频文件名、编码器、帧率、视频宽高(此处参数需和字符图片大小一致)
videoWriter = cv2.VideoWriter('bear_character.avi', fourcc, 20.0, (560, 560))
for i in range(1, 1000):
filename = 'bear/'+str(i)+'.jpg'
# 判断图片是否存在
if os.path.exists(filename):
img = cv2.imread(filename=filename)
# 在一个给定的时间内(单位ms)等待用户按键触发,100ms
cv2.waitKey(100)
# 将图片写入视频中
videoWriter.write(img)
print(str(i) + '.jpg' + ' done!')
# 视频释放
videoWriter.release()
最后成功生成字符视频。
这里懒得去添加原来的BGM,所以凑合着看吧。
据说眯眼看,效果更佳。
/ 04 / 总结
相关的视频以及代码已上传公众号。
公众号回复「字符」即可获取。
最后在此给自己做的抖音视频拉个票~
看过上一期送书推文的读者应该知道,就是那个抖音视频大赛。
大家要是有兴趣也可以去参加,具体的见上条送书推文。
其中文末的视频是我做的,而且我也去参加了,能不能拿大奖就靠大家了。
公众号「数据森麟」的作者也参加了,了解这个公众号的读者,也可以去一睹大佬的真容,帮忙点赞,哈哈。
对于就开过一次赞赏的我而言,大家的抖音点赞就是对我最大的赞赏。
晚上的时候,还找了几个问过我问题的读者,帮忙点赞,大家也挺配合的。
其中有个小妹妹,手机上没抖音,还立马去下了一个,来帮我点赞。
心中有一种莫名的感动,感谢大家的支持。
具体的见上图,就是那个蓝色的模糊的视频,不过就视频的效果而言,应该堪称大片。
手机上有抖音的就帮忙点个赞,没抖音的就算啦。
毕竟少刷抖音,多看书。这句话,一点毛病也没有。
万水千山总是情,点个「好看」行不行。
python写抖音网站_用Python生成抖音字符视频!相关推荐
- 怎么用python写脚本刷金币_【python入门】之教你编写自动获取金币脚本
最近看到个特别全面源码分享网站,刚好有个项目是一直想做但是没有头绪的,就想下载学习一下.注册账号后,发现还需要若干金币.后来发现可以通过每隔一定时间发心情状态来获得金币,就打算写一个自动发心情状态的 ...
- python写一个表白程序_用Python写一个能算出自己年龄的小程序
用Python写一个能算出自己年龄的小程序. 其实我连我今年多少岁都不知道,最近看到了python的datetime库里面有很多好用的方法,于是就写了这样一个程序作为练习,然后又写了这样一篇文章来梳理 ...
- python写游戏棋牌游戏_使用python实现简单五子棋游戏
使用python实现简单五子棋游戏 发布时间:2020-08-29 06:12:30 来源:脚本之家 阅读:73 作者:weixin_42874933 用python实现五子棋简单人机模式的练习过程, ...
- python写一个ssh工具_用Python写个自动ssh登录远程服务器的小工具
很多时候我们喜欢在自己电脑的终端直接ssh连接Linux服务器,而不喜欢使用那些有UI界面的工具区连接我们的服务器.可是在终端使用ssh我们每次都需要输入账号和密码,这也是一个烦恼,所以我们可以简单的 ...
- python大神交流网站_学习Python必去的8个网站
作为一个现时代的程序员初学者,除了看书之外,互联网的学习手段也是断不能少的! 以下这些网站,虽说不上全方位的满足你的需求,但是大部分也都能! 0.国外的大神GitHub : https://githu ...
- python写抢火车票软件_用 Python 代码自动抢火车票
市场上很多火车票抢票软件大家应该非常熟悉,但很少有人研究具体是怎么实现的,所以觉得很神秘,其实很简单.下面使用Python模拟抢票程序,给大家揭秘抢票到底是怎么回事. 该代码仅供参考,主要用于大家沟通 ...
- 用python写跑酷游戏脚本_用python写游戏之2D跑酷游戏(二)
这篇文章介绍2D跑酷游戏中,添加地板资源, 给主角附加重力作用,以及添加游戏控制器和游戏场景的切换. 废话不多说,直接开始. 添加地板资源 定义地板类,继承自pygame.sprite.Sprite ...
- python写一个crm系统_用Python打造一个CRM系统(四)
在上一篇中在本地进行初始化,并让项目顺利运行.在本篇中将实现一个线索管理模块,支持线索的增删改查. 新建线索应用模块 进入项目目录,使用django命令创建线索应用模块,命令如下: $ python ...
- 如何用python写查询名字程序_用Python写个迷你出门问问|10几行代码搞定
上一篇讲了JSON文件的用法,小伙伴们感觉好像写的很不过瘾,后台有好几个小伙伴问我能不能再写一篇,其中还有两个小伙伴给我留言,问我什么是Web Api,好今天我会解释一下,同时利用百度开放的API写一 ...
最新文章
- 解决PyCharm ImportError: No module named tensorflow 详解
- 学python是看书还是看视频-学 Python 你觉得是看书还是看视频?
- Linux / 守护进程
- springboot集成swagger2,以及swagger-ui.html访问404的问题解决:拦截器造成的
- SQL Server 2005 的nvarchar(max),varchar(max)来救火
- java windows 取所有任务_Win下,通过Jstack截取Java进程中的堆栈信息
- 隐藏文字的另一种方法
- 投票源码程序_基于用户投票的排名算法
- 嵌入式Linux系统编程学习之四Shell编程
- _.findIndex(array, [predicate=_.identity], [fromIndex=0])
- 20. 顺时针打印矩阵
- javascript美术馆
- linux编译生成动态库、静态库,以及使用
- C语言 牛顿法 解方程,如何用科学计算器求方程的解(牛顿法解方程具体步骤)...
- html怎么把网址设为首页,怎样让网站设为首页和加入收藏
- 【转】一起做RGB-D SLAM (1)
- android菜鸡提升之路---实现一个积木拼图游戏
- Electron在win7上加载plotyjs失败的解决方法
- 缝的是鞋,连的,却是人心。
- 诚之和:机器人送餐8K超高清直播,5G赋能智慧冬奥