您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch |

自学教程:Python制作动态字符画的源码

51自学网 2021-10-30 22:24:48
  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动态字符画内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


Python进行区间取值案例讲解
Python内置数据结构列表与元组示例详解
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1