視頻轉(zhuǎn)字符畫(huà)工具是網(wǎng)友開(kāi)發(fā)的一款視頻轉(zhuǎn)字符畫(huà)工具,視頻轉(zhuǎn)字符畫(huà)采用python語(yǔ)言開(kāi)發(fā),能夠幫助你生成字符畫(huà),非常的不錯(cuò)!
使用方法:
將要制作的視頻放在與exe文件同目錄下,執(zhí)行VideoToText.exe,輸入視頻名稱(chēng)(包括后綴,如1.mp4),將自動(dòng)生成縮放后的GIF與HTML頁(yè)面。
有Python2.7環(huán)境的可以自己執(zhí)行VideoToText.py,通過(guò)該文件中的config配置可以自定義生成的字符畫(huà)大小與分辨率。
在不修改配置的前提下,每分鐘視頻轉(zhuǎn)化的字符畫(huà)大小約為14MB。
因平臺(tái)差異,存放路徑中請(qǐng)不要包含中文。FFmpeg.exe與VideoToText.exe請(qǐng)放在同一目錄下。
軟件相關(guān):
字符畫(huà)轉(zhuǎn)換關(guān)鍵技術(shù)
第一個(gè)關(guān)鍵技術(shù):漢字庫(kù)讀取技術(shù)
使用漢字庫(kù)技術(shù)可以做到和操作系統(tǒng)無(wú)關(guān)性,先了解一下點(diǎn)陣字庫(kù)的基本原理。如下所示,下面是一個(gè)“字”的點(diǎn)陣圖,在16點(diǎn)陣字庫(kù)中一個(gè)漢字為16x16點(diǎn),每一行使用兩個(gè)字節(jié)表示,如下面示例第一行的十六進(jìn)制為:0x02和0x00,所以,一個(gè)漢字在16點(diǎn)陣字庫(kù)中需要占用2x16個(gè)字節(jié),24點(diǎn)陣字庫(kù)需要3x24個(gè)字節(jié),下面僅以16點(diǎn)陣字庫(kù)為例,其他點(diǎn)陣類(lèi)似。
第二個(gè)關(guān)鍵技術(shù):使用系統(tǒng)字庫(kù)進(jìn)行轉(zhuǎn)換
其實(shí)使用系統(tǒng)字庫(kù)是極為自由的方式,因?yàn)檫@樣完全不必關(guān)心字庫(kù)的技術(shù),這一切都交給系統(tǒng)好了,充分利用系統(tǒng)資源。
如果定義一個(gè)設(shè)備,然后設(shè)定好設(shè)備的各種屬性,包括寬度、高度、字體、顏色等,然后在上面繪制文本就可以了,要轉(zhuǎn)換為字符畫(huà),只需要把設(shè)備上的點(diǎn)陣信息轉(zhuǎn)換為文本即可。配合CreateFontIndirect函數(shù),使用DrawText可以繪制豐富的文本效果。
第三個(gè)關(guān)鍵技術(shù):圖片轉(zhuǎn)換為文本
要把圖像轉(zhuǎn)換為文本,這其中有一個(gè)很大的困難,就是文本沒(méi)有顏色,所以特別引進(jìn)了一個(gè)概念:文本灰度,就是把不同字母在屏幕上顯示的大小排序,得到一張灰度表,用這個(gè)灰度表來(lái)轉(zhuǎn)換圖片,可以達(dá)到比較好的效果。
第四個(gè)關(guān)鍵技術(shù):把文本轉(zhuǎn)換為圖像
要把文本轉(zhuǎn)換為圖片,必須獲取兩個(gè)重要參數(shù):轉(zhuǎn)換后的寬和高,要取得這兩個(gè)參數(shù),我們可以使用GetTextExtentPoint32函數(shù)。