公众号关注 “视学算法”

设为 “星标”,DLCV消息即可送达!

转自量子位

有个程序猿,用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生成的。

最后看一下视频,一睹为快!

牛逼!用 12 万行代码堆出来个 蔡徐坤,编译还能通过!相关推荐

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

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

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

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

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

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

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

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

  5. 哈哈!12万行代码堆出来个「蔡徐坤」

    鱼羊 白交 发自 凹非寺 量子位 报道 | 公众号 QbitAI 有个程序猿,用12万行代码堆出来个「蔡徐坤」,编译还能通过?! 它是这样的: 不是简单的灰度字符画!也不是控制台控制颜色!而是在唱.跳 ...

  6. 分享史上java最牛逼 最简短的代码

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 原创不易 ...

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

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

  8. 最牛逼的java代码_分享史上java最牛逼 最简短的代码-Go语言中文社区

    也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 确实是12306的最核心代码呀 确实牛public class Test{    static{       System.ou ...

  9. 最牛逼的java代码_分享史上java最牛逼,最简短的代码

    确实是12306的最核心代码呀 alert("当前访问用户过多,请稍后重试!"); 确实牛 public class Test{ static{ System.out.printl ...

最新文章

  1. Cloudify — 安装部署与基础使用
  2. 【Network Security!】密码攻击的原理和方法
  3. 学习这门课的一些问题
  4. 移动医疗APP(解决方案)下载
  5. 原生线程池这么强大,Tomcat 为何还需扩展线程池?
  6. iQOO高层专访:打造性能旗舰 用户满意度为先
  7. 集群节点数和分片数关系_Elasticsearch最佳实践之分片使用优化
  8. .NET+Oracle 9i时产生的未在本地计算机上注册“OraOLEDB.Oracle.1”提供程序
  9. js获取浏览器内各种高度宽度总结
  10. Qt实战案例(13)——Qt的界面外观详细介绍
  11. CentOS安全运维检查命令
  12. 网络编辑必知常识:什么是PV、UV和PR值
  13. python重复import_Python 中循环 import 造成的问题如何解决?
  14. html中w3c标准,css标准 - W3C中国
  15. 吉林大学计算机孙磊,室内灯光控制系统设计毕业论文.doc
  16. Gretna网络分析之先验知识
  17. 玩转算法面试LeetCode题目目录
  18. pthread_cancel 线程阻塞问题
  19. Historic Exhibition 贪心
  20. 斗地主中自主出牌的游戏逻辑

热门文章

  1. 【青少年编程】【二级】寻找宝石
  2. 数据结构与算法:15 树
  3. ef关联多实体查询_Mybatis基本知识十二:关联关系查询之延迟加载:侵入式延迟加载...
  4. 从入门到深入:移动平台模型裁剪与优化的技术探索与工程实践
  5. 华为腾讯百度众安微众360大咖齐聚,2019中国区块链开发者大会首批议程曝光!...
  6. 图森未来完成2.15亿美元D轮融资,将拓展无人驾驶运输服务
  7. 2018最后一战:25天编程PK赛!
  8. 如此精心整理的深度学习资源只在这里,值得你拥有!(上篇)
  9. 陆奇激动地对世界说,百度就是中国的谷歌
  10. 牛逼哄哄的布隆过滤器,到底有什么用?