Python制作动态字符画的源码


Posted in Python onAugust 04, 2021

字符画,一种由字母、标点、汉字或其他字符组成的图画。简单的字符画是利用字符的形状代替图画的线条来构成简单的人物、事物等形象,它一般由人工制作而成;复杂的字符画通常利用占用不同数量像素的字符代替图画上不同明暗的点,它一般由程序制作而成。字符画是互联网时代的产物,通常应用于即时聊天中。

首先,也是最重要的,先放源码

from PIL import Image as im
from tkinter import *
import cv2
 
# 随便打
codeLib = '''*.1'''
count = len(codeLib)
 
 
def transform(image_file):
    codePic = ''
    for h in range(0, image_file.size[1]):
        for w in range(0, image_file.size[0]):
            g, r, b = image_file.getpixel((w, h))
            gray = int(r * 0.299 + g * 0.587 + b * 0.114)
            codePic = codePic + codeLib[int(((count - 1) * gray) / 256)]
        codePic = codePic + '\r\n'
    return codePic
 
 
def image2char(image_file):
    image_file = image_file.resize((int(image_file.size[0] * 0.16), int(image_file.size[1] * 0.06)))  # 调整图片大小
    return transform(image_file), image_file.size[0], image_file.size[1]
 
 
def frame2image(cap, i):
    cap.set(cv2.CAP_PROP_POS_FRAMES, i)
    _, b = cap.read()
    image = im.fromarray(cv2.cvtColor(b, cv2.COLOR_BGR2RGB))
    return image
 
 
def gui(path):
    cap = cv2.VideoCapture(path)
    root = Tk()
    t = frame2image(cap, 0)
    _, w, h = image2char(t)
    text = Text(root, width=w, height=h)
    text.pack()
    framenum = int(cap.get(7))
    for i in range(framenum):
        image = frame2image(cap, i)
        content, _, _ = image2char(image)
        text.insert(INSERT, content)
        root.update()
        text.delete(0.0, END)
 
 
if __name__ == '__main__':
    gui(r'C:\Users\Administrator\Desktop\油性极大.mp4')

然后,选择一个短视频

Python制作动态字符画的源码

最后选择视频的路径,修改代码的文件路径,在运行代码

Python制作动态字符画的源码

到此这篇关于Python制作动态字符画的源码的文章就介绍到这了,更多相关Python动态字符画内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python 常用string函数详解
May 30 Python
详解Numpy中的广播原则/机制
Sep 20 Python
django框架之cookie/session的使用示例(小结)
Oct 15 Python
Django之Mode的外键自关联和引用未定义的Model方法
Dec 15 Python
用Python解决x的n次方问题
Feb 08 Python
python文件绝对路径写法介绍(windows)
Dec 25 Python
IDLE下Python文件编辑和运行操作
Apr 25 Python
Python中操作各种多媒体,视频、音频到图片的代码详解
Jun 04 Python
python为什么要安装到c盘
Jul 20 Python
Python3爬虫mitmproxy的安装步骤
Jul 29 Python
Python如何定义有默认参数的函数
Aug 10 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
Nov 30 Python
Python进行区间取值案例讲解
Aug 02 #Python
Python获取江苏疫情实时数据及爬虫分析
Django对接elasticsearch实现全文检索的示例代码
Aug 02 #Python
浅谈Python3中datetime不同时区转换介绍与踩坑
Aug 02 #Python
python数字转对应中文的方法总结
Aug 02 #Python
Python List remove()实例用法详解
Aug 02 #Python
Python中基础数据类型 set集合知识点总结
Aug 02 #Python
You might like
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
再谈javascript面向对象编程
2012/03/18 Javascript
javascript设置连续两次点击按钮时间间隔的方法
2014/10/28 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
2016/04/14 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
JS实现前端缓存的方法
2017/09/21 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
[03:59]第二届DOTA2亚洲邀请赛选手传记-VGJ.rOtk
2017/04/03 DOTA
[01:57]2018DOTA2亚洲邀请赛赛前采访-iG
2018/04/03 DOTA
一个基于flask的web应用诞生(1)
2017/04/11 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
python对excel文档去重及求和的实例
2018/04/18 Python
Django全局启用登陆验证login_required的方法
2020/06/02 Python
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
html5 canvas 使用示例
2010/10/22 HTML / CSS
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
理肤泉美国官网:La Roche-Posay
2018/01/17 全球购物
Homestay中文官网:全球寄宿家庭
2018/10/18 全球购物
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
锐步英国官网:Reebok英国
2019/11/29 全球购物
哈曼俄罗斯官方网上商店:Harman.club
2020/07/24 全球购物
如何用PHP实现邮件发送
2012/12/26 面试题
母亲追悼会答谢词
2014/01/27 职场文书
班级道德讲堂实施方案
2014/02/24 职场文书
企业文明单位申报材料
2014/05/16 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
乡镇团代会开幕词
2016/03/04 职场文书
python实现三次密码验证的示例
2021/04/29 Python
MYSQL(电话号码,身份证)数据脱敏的实现
2021/05/28 MySQL