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 相关文章推荐
简单的连接MySQL与Python的Bottle框架的方法
Apr 30 Python
使用Python发送各种形式的邮件的方法汇总
Nov 09 Python
python中的随机函数random的用法示例
Jan 27 Python
批量将ppt转换为pdf的Python代码 只要27行!
Feb 26 Python
将Django项目部署到CentOs服务器中
Oct 18 Python
Flask之请求钩子的实现
Dec 23 Python
Python中整数的缓存机制讲解
Feb 16 Python
Python爬虫使用代理IP的实现
Oct 27 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
Dec 11 Python
Python csv文件记录流程代码解析
Jul 16 Python
Python 如何操作 SQLite 数据库
Aug 17 Python
去除python中的字符串空格的简单方法
Dec 22 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
简单解决微信文章图片防盗链问题
2016/12/17 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
Laravel 数据库加密及数据库表前缀配置方法
2019/10/10 PHP
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
2012/07/25 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
javascript如何使用bind指定接收者
2014/05/04 Javascript
Javascript判断图片尺寸大小实例分析
2014/06/16 Javascript
PHP PDO操作总结
2014/11/17 Javascript
js查找节点的方法小结
2015/01/13 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
jquery.cookie实现的客户端购物车操作实例
2015/12/24 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
微信小程序websocket实现聊天功能
2020/03/30 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
vue1.0和vue2.0的watch监听事件写法详解
2018/09/11 Javascript
浅谈Node框架接入ELK实践总结
2019/02/22 Javascript
python3.6.3转化为win-exe文件发布的方法
2018/10/31 Python
python linecache 处理固定格式文本数据的方法
2019/01/08 Python
简单了解django索引的相关知识
2019/07/17 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
Python 根据数据模板创建shapefile的实现
2019/11/26 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
CSS3制作彩色进度条样式的代码示例分享
2016/06/23 HTML / CSS
荷兰鞋子在线:Nelson Schoenen
2017/12/25 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
教师求职推荐信范文
2013/11/20 职场文书
高一历史教学反思
2014/01/13 职场文书
工作说明书范文
2014/05/07 职场文书
金融管理专业求职信
2014/07/10 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
分析设计模式之模板方法Java实现
2021/06/23 Java/Android
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript
Nginx配置根据url参数重定向
2022/04/11 Servers