Python制作動態(tài)字符畫的源碼
字符畫,一種由字母、標(biāo)點(diǎn)、漢字或其他字符組成的圖畫。簡單的字符畫是利用字符的形狀代替圖畫的線條來構(gòu)成簡單的人物、事物等形象,它一般由人工制作而成;復(fù)雜的字符畫通常利用占用不同數(shù)量像素的字符代替圖畫上不同明暗的點(diǎn),它一般由程序制作而成。字符畫是互聯(lián)網(wǎng)時代的產(chǎn)物,通常應(yīng)用于即時聊天中。
首先,也是最重要的,先放源碼
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))) # 調(diào)整圖片大小 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')
然后,選擇一個短視頻
最后選擇視頻的路徑,修改代碼的文件路徑,在運(yùn)行代碼
到此這篇關(guān)于Python制作動態(tài)字符畫的源碼的文章就介紹到這了,更多相關(guān)Python動態(tài)字符畫內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。