視頻版更好看 ↓↓↓↓ 我們都知道,系統(tǒng)的控制臺(tái)是無(wú)法顯示圖片和視頻的。這對(duì)于經(jīng)常需要在服務(wù)器上摸魚(yú)刷視頻進(jìn)行開(kāi)發(fā)運(yùn)維的朋友來(lái)說(shuō),可能會(huì)有一些不方便。 于是就有人想出了一個(gè)辦法,把圖片轉(zhuǎn)成ASCII碼的字符陣列,這樣就能在控制臺(tái)中顯示出來(lái)了。 這種方法的原理其實(shí)挺簡(jiǎn)單,就是將圖片劃分成許多小格子,每個(gè)格子再根據(jù)其灰度值,對(duì)應(yīng)到一組深淺不一的字符上。 我以前也寫(xiě)過(guò)類似的一個(gè)程序 >>> 超不清視頻播放器 不過(guò)相比于實(shí)用價(jià)值,這種轉(zhuǎn)換更多時(shí)候是出于藝術(shù)風(fēng)格化的目的。 而如果你也想在自己的視頻或者課程作業(yè)中用上這樣的效果,很簡(jiǎn)單,直接用別人寫(xiě)好的開(kāi)源工具即可。比如 github 上的這個(gè) ASCII-generator,只需要一行命令,就可以把圖片或視頻轉(zhuǎn)成字符陣列。 https://github.com/vietnh1009/ASCII-generator ASCII-generator是一個(gè)Python程序,所以要使用它,首先確保你的電腦上已經(jīng)安裝好了Python環(huán)境。(還沒(méi)有安裝Python的請(qǐng)參考入門教程中「安裝」一節(jié)) 然后打開(kāi)項(xiàng)目的Github頁(yè)面,復(fù)制項(xiàng)目地址,通過(guò)git clone命令將項(xiàng)目克隆到本地。 或者直接下載zip壓縮包到本地后解壓。 接下來(lái),你就可以運(yùn)行代碼進(jìn)行轉(zhuǎn)換了。 項(xiàng)目中的 img2txt,img2img,video2video 分別對(duì)應(yīng)著圖片轉(zhuǎn)文本,圖片轉(zhuǎn)圖片,和視頻轉(zhuǎn)視頻。 后面帶 _color 的是轉(zhuǎn)成彩色的版本。 此外,你還可以通過(guò)運(yùn)行參數(shù),指定輸入和輸出的文件地址,字符數(shù)量的多少,背景色,陣列的寬度等等。 python video2video_color.py --input test.mp4 --mode complex --background white --num_cols 50 想必很多朋友都知道,最近何同學(xué)因?yàn)樵谝曨l中用到了這個(gè)項(xiàng)目而沒(méi)有主動(dòng)說(shuō)明,受到了不少批評(píng)。 那么如果你也想用網(wǎng)上的代碼,應(yīng)該注意些什么呢? 首先你需要明確一點(diǎn),開(kāi)源軟件并不等同于免費(fèi)軟件,更不是隨便想怎么用就怎么用。開(kāi)源軟件的使用規(guī)范取決于這個(gè)軟件使用了怎樣的開(kāi)源許可證。開(kāi)源許可證有很多種,ASCII-generator使用的是其中相對(duì)寬松的一種:MIT許可證。它允許免費(fèi)使用,也允許商用、修改和銷售,但唯一的要求就是在代碼中保留署名和原有的MIT聲明。 那么問(wèn)題來(lái)了,如果我拿它處理了一張圖片,并把結(jié)果用在了我的視頻里,是否需要說(shuō)明呢? 理論上來(lái)說(shuō),如果只是用到代碼處理的圖片,即代碼的衍生產(chǎn)物,不聲明也并不違反協(xié)議。 但如果你發(fā)布的是代碼或是基于代碼構(gòu)建的軟件產(chǎn)品,是需要的。甚至像用到 numpy、requests 這樣的底層庫(kù),也應(yīng)當(dāng)在介紹或附加文檔中注明。比如這是某知名聊天軟件在許可協(xié)議中列出其用到的開(kāi)源代碼。 而當(dāng)你代碼的大部分核心功能都是基于別人的代碼時(shí),于情于理都更應(yīng)該給出明確的來(lái)源說(shuō)明,而不是含糊其辭,讓別人誤解這完全是你自己編寫(xiě)的。 關(guān)注編程教室較早的朋友應(yīng)該知道,我本人就是類似行為的受害者,代碼曾經(jīng)被全網(wǎng)營(yíng)銷號(hào)不署名搬運(yùn),甚至還有一些機(jī)構(gòu)還拿去作為教學(xué)案例 >>> 一天之內(nèi)我被全網(wǎng)上百個(gè)編程營(yíng)銷號(hào)抄襲!記錄一下這個(gè)魔幻的時(shí)刻 所以,如果你想成為一名體面的開(kāi)發(fā)者,請(qǐng)養(yǎng)成良好習(xí)慣,保留別人代碼中的版權(quán)信息,遵守授權(quán)許可的要求,并盡可能注明所用到的開(kāi)源代碼。 互聯(lián)網(wǎng)上的任何一行代碼都不是天上掉下來(lái)的,背后都是開(kāi)發(fā)者的付出。使用開(kāi)源,尊重開(kāi)源,參與開(kāi)源,社區(qū)將因你而更美好。 |
|