本篇内容主要讲解“Python怎么制作动态字符画”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么制作动态字符画”吧!
字符画,一种由字母、标点、汉字或其他字符组成的图画。简单的字符画是利用字符的形状代替图画的线条来构成简单的人物、事物等形象,它一般由人工制作而成;复杂的字符画通常利用占用不同数量像素的字符代替图画上不同明暗的点,它一般由程序制作而成。字符画是互联网时代的产物,通常应用于即时聊天中。
首先,也是最重要的,先放源码
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怎么制作动态字符画”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。