python游戏开发之视频转彩色字符动画


Posted in Python onApril 26, 2019

本文实例为大家分享了python视频转彩色字符动画的具体代码,供大家参考,具体内容如下

一、效果

原图:

python游戏开发之视频转彩色字符动画

转换后:

效果可通过代码开头几行的参数调节

python游戏开发之视频转彩色字符动画

二、代码

开头几行代码,自己看着调整,把效果调到最佳就ok。

依赖库:

pip install opencv-python

pip install pygame

代码:

import pygame
import cv2
 
FONT_SIZE = 18 # 字体大小,可自行调整
WIN_SIZE = (1440, 1000) # 窗口大小,可自行调整
VIDEO_SIZE = (30, 30) # 视频大小,可自行调整
VIDEO_PATH = './cat.gif' # 视频文件(可以为常见的视频格式和gif)
STR_TEXT = '假装失智' # 替换字符,可自定义,没有长度限制,但至少得有一个
 
 
def video2imgs(video_name, size):
 img_list = []
 cap = cv2.VideoCapture(video_name)
 
 while cap.isOpened():
  ret, frame = cap.read()
  if ret:
   img = cv2.resize(frame, size, interpolation=cv2.INTER_AREA)
   img_list.append(img)
  else:
   break
 cap.release()
 
 return img_list
 
 
# 初始化pygame
def main():
 pygame.init()
 
 winSur = pygame.display.set_mode(WIN_SIZE)
 
 imgs = video2imgs(VIDEO_PATH, VIDEO_SIZE)
 
 btnFont = pygame.font.SysFont("fangsong", FONT_SIZE)
 
 btnFont.set_bold(True)
 
 # 生成surface
 sur_list = []
 for img in imgs:
  height, width, color = img.shape
  surface = pygame.Surface(WIN_SIZE)
  a = 0
  x, y = 0, 0
  for row in range(height):
   x = 0
   for col in range(width):
    # 获取当前像素RGB
    rgb = img[row][col]
    rgb[0], rgb[2] = rgb[2], rgb[0]
    text_texture = btnFont.render(STR_TEXT[a], True, rgb)
    a = a + 1
    a = a % len(STR_TEXT)
    surface.blit(text_texture, (x, y))
    x = x + FONT_SIZE
   y = y + FONT_SIZE
  sur_list.append(surface)
 
 # 游戏主循环
 current_frame = 0
 while True:
 
  for event in pygame.event.get():
   if event.type == pygame.QUIT:
    exit()
 
  pygame.time.delay(int(1000 / 24))
  winSur.fill((0, 0, 0))
  winSur.blit(sur_list[current_frame], [0, 0])
  current_frame += 1
  current_frame %= len(sur_list)
  # 刷新界面
  pygame.display.flip()
 
 
if __name__ == '__main__':
 main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python学习笔记之常用函数及说明
May 23 Python
Python实例之wxpython中Frame使用方法
Jun 09 Python
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
May 20 Python
浅谈Python中函数的参数传递
Jun 21 Python
在win和Linux系统中python命令行运行的不同
Jul 03 Python
python 删除指定时间间隔之前的文件实例
Apr 24 Python
Python用61行代码实现图片像素化的示例代码
Dec 10 Python
用Python逐行分析文件方法
Jan 28 Python
Python GUI自动化实现绕过验证码登录
Jan 10 Python
如何基于线程池提升request模块效率
Apr 18 Python
Python ckeditor富文本编辑器代码实例解析
Jun 22 Python
Python xlwings插入Excel图片的实现方法
Feb 26 Python
python接口自动化测试之接口数据依赖的实现方法
Apr 26 #Python
python使用参数对嵌套字典进行取值的方法
Apr 26 #Python
python将视频转换为全字符视频
Apr 26 #Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 #Python
Python3.5内置模块之random模块用法实例分析
Apr 26 #Python
python3.5安装python3-tk详解
Apr 26 #Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
Apr 26 #Python
You might like
php字符串截取问题
2006/11/28 PHP
PHP register_shutdown_function函数的深入解析
2013/06/03 PHP
php实现读取内存顺序号
2015/03/29 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
PHP count()函数讲解
2019/02/03 PHP
laravel清除视图缓存的代码
2019/10/23 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
FCK调用方法..
2006/12/21 Javascript
js获取控件位置以及不同浏览器中的差别介绍
2013/08/08 Javascript
9行javascript代码获取QQ群成员具体实现
2013/10/16 Javascript
jquery 使用简明教程
2014/03/05 Javascript
alert和confirm功能介绍
2014/05/21 Javascript
Windows环境下npm install 报错: operation not permitted, rename的解决方法
2016/09/26 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
Node 升级到最新稳定版的方法分享
2018/05/17 Javascript
JavaScript 中的 this 工作原理
2018/06/20 Javascript
JavaScript中arguments和this对象用法分析
2018/08/08 Javascript
对Vue table 动态表格td可编辑的方法详解
2018/08/28 Javascript
python时间整形转标准格式的示例分享
2014/02/14 Python
Python使用cookielib模块操作cookie的实例教程
2016/07/12 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
python实现海螺图片的方法示例
2019/05/12 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
深入了解Python enumerate和zip
2020/07/16 Python
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
婚礼证婚人证婚词
2014/01/13 职场文书
地球物理学专业推荐信
2014/09/08 职场文书
小学生九一八纪念日83周年演讲稿500字
2014/09/17 职场文书
乡党委干部党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
运动会闭幕词
2015/01/28 职场文书
Python使用scapy模块发包收包
2021/05/07 Python
Python使用Kubernetes API访问集群
2021/05/30 Python
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python