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学习笔记(二)基础语法
Jun 06 Python
深入探究Python中变量的拷贝和作用域问题
May 05 Python
基于Python 装饰器装饰类中的方法实例
Apr 21 Python
Python爬虫框架scrapy实现的文件下载功能示例
Aug 04 Python
python生成每日报表数据(Excel)并邮件发送的实例
Feb 03 Python
Python简单I/O操作示例
Mar 18 Python
Python3日期与时间戳转换的几种方法详解
Jun 04 Python
python爬虫 爬取超清壁纸代码实例
Aug 16 Python
Django配置MySQL数据库的完整步骤
Sep 07 Python
python使用pandas抽样训练数据中某个类别实例
Feb 28 Python
python 如何将两个实数矩阵合并为一个复数矩阵
May 19 Python
pytorch通过训练结果的复现设置随机种子
Jun 01 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中与数组相关的函数
2007/03/22 PHP
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
laravel自定义分页效果
2017/07/23 PHP
PHP中一个有趣的preg_replace函数详解
2018/08/15 PHP
php7 错误处理机制修改实例分析
2020/05/25 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
有关javascript的性能优化 (repaint和reflow)
2013/04/12 Javascript
解决json日期格式问题的3种方法
2014/02/02 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
JavaScript常用小技巧小结
2014/12/29 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
Angular的事件和表单详解
2016/12/26 Javascript
WebStorm ES6 语法支持设置&babel使用及自动编译(详解)
2017/09/08 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
2018/05/30 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
2019/09/25 Javascript
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
Python字符串对象实现原理详解
2019/07/01 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
200行python代码实现贪吃蛇游戏
2020/04/24 Python
浅析Python的命名空间与作用域
2020/11/25 Python
python调用百度AI接口实现人流量统计
2021/02/03 Python
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
html5 移动端视频video的android兼容(去除播放控件、全屏)
2020/03/26 HTML / CSS
Lands’ End英国官方网站:高质量男女服装
2017/10/07 全球购物
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
西式婚礼证婚词
2014/01/12 职场文书
美国旅游签证工作证明
2014/10/14 职场文书
皇城相府导游词
2015/02/06 职场文书
家长高考寄语
2015/02/27 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers
使用 Apache 反向代理的设置技巧
2022/01/18 Servers
python解析照片拍摄时间进行图片整理
2022/07/23 Python