鱼羊 白交 发自 凹非寺
量子位 报道 | 公众号 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的代码高亮会抽风。原理还是基于语法规则,比如conststatic可以无限叠加,标识符和字符串可以任意长,根据这些去构造想要的颜色的长度。

One More Thing

所以,为什么会开这样一个脑洞?

在采访中,NyeJu也给出了答案:

是受「何同学」最新一个视频——《我用一万行备忘录做了个动画…》的启发,想做一个更厉害一点的。

另外,虽然展示给大家的代码是C++,NyeJu本人其实在日常的coding中用Python多一点,这个项目的C++代码也是用Python生成的。

- end -

哈哈!12万行代码堆出来个「蔡徐坤」相关推荐

  1. 程序猿小哥用12万行代码堆出来个「蔡徐坤」!编译竟然还能通过

    点击上方"Github中文社区",关注 看遍Github好玩的项目 量子位 大家好,我是hub哥! 有个程序猿,用12万行代码堆出来个「蔡徐坤」,编译还能通过?! 它是这样的: 不 ...

  2. 牛逼!用 12 万行代码堆出来个 蔡徐坤,编译还能通过!

    公众号关注 "视学算法" 设为 "星标",DLCV消息即可送达! 转自量子位 有个程序猿,用12万行代码堆出来个「蔡徐坤」,编译还能通过?! 不是简单的灰度字符 ...

  3. 厉害了!用12万行代码堆出来个蔡徐坤,编译还能通过!

    点击"开发者技术前线",选择"星标????" 在看|星标|留言,  真爱 作者丨鱼羊 白交 来源丨量子位(ID:QbitAI) 有个程序猿,用12万行代码堆出来 ...

  4. 有点厉害!用12万行代码堆出来个蔡徐坤,编译还能通过!

    程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 2.8 分钟. 作者:鱼羊 白交 来自:量子位(ID:QbitAI) 有个程序猿,用12万行代码堆出来个「蔡徐坤」,编译还能通 ...

  5. 有点厉害!用12万行代码堆出来个蔡徐坤,关键是能跑能跳!

    热文推荐: 尘埃落定!清华才子王垠加入华为职级22,前阿里P10赵海平加入字节跳动,职级或为4+ 百度网盘"破解版",Pandownload开发者被抓 作者:鱼羊 白交 来自:量子 ...

  6. ikun请进|爱心代码表白蔡徐坤来了

    实现效果如下 话不多说,直接代码全给,以下: <!DOCTYPE html> <html><head><title></title>< ...

  7. java代码规范插件_「Java基础知识」代码规范插件怎么用

    原标题:「Java基础知识」代码规范插件怎么用 在开发中,好的编程风格可以提升团队合作能力,提升开发的效率,但是每个人都有自己的编程习惯,如何能够将大家的编程风格统一,这个在团队中也很重要; 在Jav ...

  8. 毕业论文html代码查重吗,「毕业之家」“抄”一篇毕业论文,会被学校查重出来吗?...

    大家好,我是毕业之家小毕同学.后续会持续为大家更新毕业论文写作.修改.降重,记得关注哟. 毕业论文一直是毕业生的"老大难".尤其是本科生,其实在大学四年的培养计划里真正涉及到论文写 ...

  9. 用Python让蔡徐坤在我的命令行里打篮球!|附完整代码

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑ 来源 | 01二进制(ID:gh_d1999add1857) 编辑 | Jane [导语]作者自称是一个 ...

最新文章

  1. javascript中async await的用法
  2. PHP统计网站pv(访问量)
  3. 对QT学习之路12-14的源代码补充与修正
  4. Struts ActionForm简单理解
  5. git本地库(操作具体命令)
  6. 大三软件工程小项目-小技术集合-Qt状态栏设置
  7. linux用户命令解释器,Linux下的命令解释器 ash.exe
  8. android.os.NetworkOnMainThreadException 异常处理
  9. windows找不到文件gpedit.msc_u盘插入电脑在windows却找不到u盘的解决办法【详解】...
  10. java 调用阿里云翻译
  11. H5微信内部支付宝签约代扣
  12. python函数调用另外的一个函数
  13. Vue+UpLoad实现上传、点图预览、删除图片
  14. U盘修复后文件丢失怎么办?U盘数据丢失怎么恢复
  15. OpenGL绘制球体
  16. 启辰r30近光灯远光灯保险盒,近光灯故障处理
  17. matplotlib学习笔记(六)
  18. xshell的一些基本操作
  19. 小米运维实习生被开除:竟是因为没有用到高防服务器
  20. Android使用NFC模拟M卡实现 (二)

热门文章

  1. OE(OSA)期刊模板下载
  2. swoole通用类库,不管你用的什么框架,一个类库全部搞定!!!
  3. SpringCloud微服务注册和消费模式总结
  4. Java基础笔记_6_类和对象_成员变量
  5. 基于COTURN实现WebRTC的P2P项目
  6. 计算机一级rank函数排名怎么用,排序函数(怎样用rank函数排名)
  7. 耐克李宁竞相加码电竞产业,谁会先成就下一个电竞帝国
  8. 如何在不安装应用程序的情况下旋转iPhone视频
  9. 监控FTP服务状态,并自动重启servU
  10. ht城市介绍人口数量Html,人口规模