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中类的定义、继承及使用对象实例详解
Apr 30 Python
python实现自动登录人人网并采集信息的方法
Jun 28 Python
Python实现按特定格式对文件进行读写的方法示例
Nov 30 Python
浅谈Pandas中map, applymap and apply的区别
Apr 10 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
Aug 07 Python
python运行时强制刷新缓冲区的方法
Jan 14 Python
Python实现的爬取百度文库功能示例
Feb 16 Python
python Django编写接口并用Jmeter测试的方法
Jul 31 Python
python代码打印100-999之间的回文数示例
Nov 24 Python
python关于调用函数外的变量实例
Dec 26 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
Aug 07 Python
Python实现视频自动打码的示例代码
Apr 08 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.MVC的模板标签系统(一)
2006/09/05 PHP
php mysql 判断update之后是否更新了的方法
2012/01/10 PHP
PHP连接Access数据库的方法小结
2013/06/20 PHP
php生成数组的使用示例 php全组合算法
2014/01/16 PHP
php计算两个文件相对路径的方法
2015/03/14 PHP
php微信开发接入
2016/08/27 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
2018/03/15 PHP
PHP创建自己的Composer包方法
2018/04/09 PHP
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
TinyMCE 新增本地图片上传功能
2010/11/05 Javascript
javascript 基础篇4 window对象,DOM
2012/03/14 Javascript
JS打开新窗口防止被浏览器阻止的方法
2015/01/03 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
BootStrap selectpicker
2016/06/20 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
Python处理CSV与List的转换方法
2018/04/19 Python
网易有道2017内推编程题 洗牌(python)
2019/06/19 Python
Python json转字典字符方法实例解析
2020/04/13 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
加大码胸罩、内裤和服装:Just My Size
2019/03/21 全球购物
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
结构和类有什么异同
2012/07/16 面试题
大专生工程监理求职信
2013/10/04 职场文书
通用求职信范文模板分享
2013/12/27 职场文书
优秀中学生事迹材料
2014/01/31 职场文书
节能环保口号
2014/06/12 职场文书
水利水电专业自荐信
2014/07/08 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书
Python机器学习之KNN近邻算法
2021/05/14 Python
解决pytorch 损失函数中输入输出不匹配的问题
2021/06/05 Python
Java基于Dijkstra算法实现校园导游程序
2022/03/17 Java/Android