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开发实例分享bt种子爬虫程序和种子解析
May 21 Python
Python入门篇之编程习惯与特点
Oct 17 Python
Python的time模块中的常用方法整理
Jun 18 Python
详解Tensorflow数据读取有三种方式(next_batch)
Feb 01 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
Feb 03 Python
python的pip安装以及使用教程
Sep 18 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
Feb 07 Python
Django实现列表页商品数据返回教程
Apr 03 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
Jun 04 Python
python在CMD界面读取excel所有数据的示例
Sep 28 Python
python 日志模块logging的使用场景及示例
Jan 04 Python
详解Python Celery和RabbitMQ实战教程
Jan 20 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异步调用socket实现代码
2012/01/12 PHP
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
php获取淘宝分类id示例
2014/01/16 PHP
使用XHGui来测试PHP性能的教程
2015/07/03 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
Javascript JSQL,SQL无处不在,
2010/05/05 Javascript
奉献给JavaScript初学者的编写开发的七个细节
2011/01/11 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
2016/01/22 Javascript
ES6的新特性概览
2016/03/10 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
js实现左右轮播图
2020/01/09 Javascript
[00:36]DOTA2风云人物相约完美“圣”典 12月17日不见不散
2016/11/30 DOTA
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python使用PyGreSQL操作PostgreSQL数据库教程
2014/07/30 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
Python 判断 有向图 是否有环的实例讲解
2018/02/01 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
python爬取指定微信公众号文章
2018/12/20 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
2019/03/20 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
Pycharm github配置实现过程图解
2020/10/13 Python
python 多线程爬取壁纸网站的示例
2021/02/20 Python
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
国家地理在线商店:Shop National Geographic
2018/06/30 全球购物
英国知名小木屋定制网站:Tiger Sheds
2020/03/06 全球购物
校园之星获奖感言
2014/01/29 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
简单的离婚协议书范本
2014/11/16 职场文书
电影复兴之路观后感
2015/06/02 职场文书
小学数学教学随笔
2015/08/14 职场文书