12萬行程式碼堆出來個「蔡徐坤」
魚羊 白交 發自 凹非寺
量子位 報導 | 公眾號 QbitAI
有個程式猿,用12萬行程式碼堆出來個「蔡徐坤」,編譯還能通過?!
它是這樣的:
不是簡單的灰度字元畫!也不是控制檯控制顏色!而是在唱、跳、rap的程式碼!
連肩帶,都是有靈魂的。
這樣的作品,來自B站UP主NyeJu。他利用程式碼編輯器為不同關鍵詞顯示不同的顏色的原理,生成程式碼,然後滑動形成視訊。
這項技術的關鍵在於:
在正確的位置上放上符合規範的程式碼,顯示不同的顏色。
也就是說,整個操作純人工打造!
並且,這份程式碼是可以編譯通過的,0 error:
一經發出,網友紛紛表示:希望編譯器沒事。
還有盆友說:希望肝沒事。
12萬行程式碼你太美
當然也有盆友發出了這樣的驚歎:純手敲?!UP太強了!
不過UP主雖是真·肝帝無疑,但還沒有魔鬼到這個地步。
UP主也簡單介紹了一下自己的操作思路。
首先,選擇一個配色主題,比如UP主用的是Code Blue,並且需要獲取每一種關鍵詞的顏色。
然後,把原視訊切分成一堆圖片,識別每張圖片的畫素,匹配到最相近的關鍵詞顏色上,記錄下(顏色,長度)。
根據(顏色,長度)生成對應的程式碼。這涉及到兩個步驟:
定義一系列的pattern,比如「粉、紅、白」就是宣告,「灰、透明」就是註釋;
用pattern去匹配(顏色,長度),匹配成功就進行轉換。
而UP主的這個視訊能做到如此流暢,是因為他為原視訊的每一幀都生成了程式碼。
最後,讓這12萬行程式碼滑動起來,開頭那般的唱、跳、rap視訊就製作成功了。
即便如此,B站現場的小夥伴們還是嗅到了爆肝的氣息,比如評論區就有5級號提供了一個清新的思路:沒用專業團隊當素材,可能是因為UP肝了一整年。
於是,量子位帶著小夥伴們的好奇採訪了一下UP主NyeJu本人。
NyeJu表示,整個專案的完成其實只用了大概一週多的時間,畢竟12萬行程式碼不是手敲,而是生成的。
另外,NyeJu也解釋說,沒有選擇現在更火的其他素材,是因為蔡徐坤的素材比較乾淨,顏色數量也比較適中。
其他的素材都不是很合適,比如像「黑人抬棺」顏色就有點多,「bad apple」的話又太少。(本人對蔡徐坤沒有任何惡意。)
評論區也有盆友補充解釋了一下其中的難點:可以編譯通過我驚了。
對此,NyeJu說,其實專案一開始的底線就是能夠編譯通過,否則的話,VS Code的程式碼高亮會抽風。原理還是基於語法規則,比如const和static可以無限疊加,識別符號和字串可以任意長,根據這些去構造想要的顏色的長度。
One More Thing
所以,為什麼會開這樣一個腦洞?
在採訪中,NyeJu也給出了答案:
是受「何同學」最新一個視訊——《我用一萬行備忘錄做了個動畫…》的啟發,想做一個更厲害一點的。
另外,雖然展示給大家的程式碼是C++,NyeJu本人其實在日常的coding中用Python多一點,這個專案的C++程式碼也是用Python生成的。
最後,奉上完整視訊~
作者系網易新聞·網易號“各有態度”簽約作者
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69971123/viewspace-2695042/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 有點厲害!用12萬行程式碼堆出來個"蔡徐坤",編譯還能透過!行程編譯
- 《雞你太美》,“黑蔡徐坤”怎麼讓它火了?
- 用大資料扒一扒蔡徐坤的真假流量粉大資料
- 大資料解讀B站火過蔡徐坤的“鬼畜“區巨頭們大資料
- 虎牙軒子我餓了第四期御姐撞上小鮮肉 小摳腳秒變“蔡徐坤”?
- 讓蔡 xu 坤在你的命令列中打籃球命令列
- 坤坤真愛粉
- 張江蔡
- 好程式設計師寫出來的程式碼,就叫好程式碼嗎?你錯了!程式設計師
- 華為徐文偉:創見智慧未來
- 程式碼來構建一個簡單的compilerCompile
- 致蔡佳霖
- ZStack原始碼剖析之二次開發——在Utility上堆程式碼原始碼
- Java實現第一個程式碼,輸出 hello worldJava
- 藉助ai來分析程式碼,理解程式碼AI
- 能否將TopThink每次的程式碼或功能更新公佈出來?
- GitHub 熱門:別再用 print 輸出來除錯程式碼了Github除錯
- 執行效率高的程式碼-可以這樣寫出來~
- 先讓不懂程式碼的來測?通義這個新產品,程式碼剛寫完,預覽就出來了
- 本來想建立個部落格,沒想到做了個新手程式碼工廠
- “雞你太美血洗B站”!坤坤帶領全民學習AI ?AI
- 9個JavaScript小技巧:寫出更簡潔,高效程式碼JavaScript
- 分享個程式碼
- LevelDB 程式碼擼起來!
- 如何在 Cypress 測試程式碼中遮蔽(Suppress)來自應用程式碼報出的錯誤訊息
- 利用Python讓你的命令列像坤坤一樣會打籃球Python命令列
- 最新堆疊查詢注入攻擊和注入程式碼分析技術
- JVM(程式計數器,棧,堆)JVM
- 根據業務摸索出的一個selenium程式碼模版(python)Python
- 個人來開發短影片程式原始碼,先來看一下開發思路原始碼
- 【Git系列教程-8】Pycharm將遠端倉庫如碼雲或Github程式碼克隆下來並迭代檢視 | 檢視提交的個個版本程式碼 | 碼雲上程式碼檢視技巧PyCharmGithub
- 七個不一樣的Python程式碼寫法,讓你寫出一手漂亮的程式碼Python
- 導致程式設計師寫出爛程式碼的35個惡習,看看你染上了幾個?程式設計師
- 怎麼開發一個LSTM模型來生成形狀?(附程式碼)模型
- 小頂堆與topK的具體程式碼實現《演算法很美》TopK演算法
- Python 分形演算法__程式碼裡開出來的藝術之花Python演算法
- 五個簡單的原則,帶你寫出整潔程式碼
- 老程式設計師的10個程式設計小技巧,教你寫出高質量程式碼!程式設計師