公众号关注 “GitHubDaily”php
设为 “星标”,天天带你逛 GitHub!app
转自量子位编辑器
有个程序猿,用12万行代码堆出来个「蔡徐坤」,编译还能经过?!ide
不是简单的灰度字符画!也不是控制台控制颜色!而是在唱、跳、rap的代码!工具
连肩带,都是有灵魂的。学习
这样的做品,来自B站UP主NyeJu。他利用代码编辑器为不一样关键词显示不一样的颜色的原理,生成代码,而后滑动造成视频。动画
这项技术的关键在于:spa
在正确的位置上放上符合规范的代码,显示不一样的颜色。code
也就是说,整个操做纯人工打造!视频
而且,这份代码是能够编译经过的,0 error:
一经发出,网友纷纷表示:但愿编译器没事。
还有盆友说:但愿肝没事。
固然也有盆友发出了这样的惊叹:纯手敲?!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能够无限叠加,标识符和字符串能够任意长,根据这些去构造想要的颜色的长度。
因此,为何会开这样一个脑洞?
在采访中,NyeJu也给出了答案:
❝是受「何同窗」最新一个视频——《我用一万行备忘录作了个动画…》的启发,想作一个更厉害一点的。
❞
另外,虽然展现给你们的代码是C++,NyeJu本人其实在平常的coding中用Python多一点,这个项目的C++代码也是用Python生成的。
最后,奉上完整视频~
--- 由 GitHubDaily 原班人马打造的公众号:GitCube,现已正式上线! 接下来咱们将会在该公众号上,为你们分享优质的计算机学习资源与开发者工具,坚持天天一篇原创文章的输出,感兴趣的小伙伴能够关注一下哈!