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生成的。
最后,奉上完整视频~
作者系网易新闻·网易号“各有态度”签约作者
— 完 —
报名 | 不会写代码如何开发对话机器人
5月29日下午14:00,竹间智能Bot Factory™平台发布,0代码开发对话机器人,机器人工厂开盒即用,支持文本、语音、图像情绪识别。
扫码可围观直播~
量子位 QbitAI · 头条号签约作者
վ'ᴗ' ի 追踪AI技术和产品新动态
喜欢就点「在看」吧 !
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
随时掌握互联网精彩
- 1 习近平引领构建网络空间命运共同体 7996723
- 2 保时捷公开道歉 7941616
- 3 哈尔滨中央大街铺上地毯了 7822319
- 4 聆听大国外交的铿锵足音 7730493
- 5 黄圣依 死脑快想啊 7688149
- 6 故意冲撞石山舰 17人被抓 7571949
- 7 你的身份证快到期了吗 7458944
- 8 7万件羽绒服经查含绒量为0 7344750
- 9 女子暴瘦到60斤注入丈夫肠液胖回 7265030
- 10 9条具体措施稳外贸 7162910