新闻动态

Python制作动态字符画的源码

发布日期:2022-02-19 18:21 | 文章来源:源码中国

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

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

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动态字符画内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

香港服务器租用

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部
请您留言

YINGSOO400-630-3752

提交