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 07 Python
详解Python中for循环的使用方法
May 14 Python
python抓取最新博客内容并生成Rss
May 17 Python
Python基础篇之初识Python必看攻略
Jun 23 Python
python flask 多对多表查询功能
Jun 25 Python
python2.7安装图文教程
Mar 13 Python
python单例模式的多种实现方法
Jul 26 Python
Python实现socket非阻塞通讯功能示例
Nov 06 Python
python读取mysql数据绘制条形图
Mar 25 Python
通过自学python能找到工作吗
Jun 21 Python
Python实现画图软件功能方法详解
Jul 28 Python
python manim实现排序算法动画示例
Aug 14 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初学者最感迷茫的问题小结
2010/03/27 PHP
php简单的会话类代码
2011/08/08 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
php使用数组填充下拉列表框的方法
2015/03/31 PHP
php中switch语句用法详解
2015/08/17 PHP
js禁止小键盘输入数字功能代码
2011/08/01 Javascript
JS实现文件动态顺序载入的方法
2015/03/07 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
jquery+css实现的红色线条横向二级菜单效果
2015/08/22 Javascript
js+canvas简单绘制圆圈的方法
2016/01/28 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
2016/05/27 Javascript
input框中的name和id的区别
2016/11/16 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
2017/02/27 Javascript
JavaScript中最常见的三个面试题解析
2017/03/04 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
2018/10/08 Javascript
bootstrap table实现合并单元格效果
2018/12/24 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
2019/08/01 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
Python使用中文正则表达式匹配指定中文字符串的方法示例
2017/01/20 Python
Python实现完整的事务操作示例
2017/06/20 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
python图形开发GUI库pyqt5的基本使用方法详解
2020/02/14 Python
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
2013/01/31 HTML / CSS
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
奥地利婴儿用品和玩具购物网站:baby-markt.at
2020/01/26 全球购物
企业门卫岗位职责
2013/12/12 职场文书
男方父母证婚词
2014/01/12 职场文书
《花的勇气》教后反思
2014/02/12 职场文书
道德之星事迹材料
2014/05/03 职场文书
维护民族团结演讲稿
2014/08/27 职场文书
婚庆答谢词
2015/01/04 职场文书
紧急通知
2015/04/17 职场文书
医护人员继续教育学习心得体会
2016/01/19 职场文书