Python制作动态字符画的源码
字符画,一种由字母、标点、汉字或其他字符组成的图画。简单的字符画是利用字符的形状代替图画的线条来构成简单的人物、事物等形象,它一般由人工制作而成;复杂的字符画通常利用占用不同数量像素的字符代替图画上不同明暗的点,它一般由程序制作而成。字符画是互联网时代的产物,通常应用于即时聊天中。
【Python制作动态字符画的源码】首先,也是最重要的,先放源码
from PIL import Image as imfrom 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学习之 实现QQ自动发送消息
- 逻辑回归的理解与python示例
- python自定义封装带颜色的logging模块
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- Python基础|Python基础 - 练习1
- Python爬虫|Python爬虫 --- 1.4 正则表达式(re库)
- Python(pathlib模块)
- python青少年编程比赛_第十一届蓝桥杯大赛青少年创意编程组比赛细则
- Python数据分析(一)(Matplotlib使用)
- 迅捷流程图制作软件的使用方法!