老二次元 / 科技宅倒背如流的Bad Apple 动画快播色片网,网友 Nolen Royalty 用Vim 文本剪辑器复现出来了! 况兼仅耗时8小时、用了6500个正则抒发式! 先来通盘瞅瞅成果: 可以看到,动画基本复原了东谈主物的通盘行为,举座视频也很流通,画风很有经典像素风游戏的滋味。 继结尾、游戏引擎、ASCII 码各式 Bad Apple 整活之后,Vim 剪辑器也长进了一趟! 难怪有网友说,这即是咱们可爱 Bad Apple 的原因,它老是能带给咱们更多惊喜。 PS:如果你还不知谈
老二次元 / 科技宅倒背如流的Bad Apple 动画快播色片网,网友 Nolen Royalty 用Vim 文本剪辑器复现出来了!
况兼仅耗时8小时、用了6500个正则抒发式!
先来通盘瞅瞅成果:
可以看到,动画基本复原了东谈主物的通盘行为,举座视频也很流通,画风很有经典像素风游戏的滋味。
继结尾、游戏引擎、ASCII 码各式 Bad Apple 整活之后,Vim 剪辑器也长进了一趟!
难怪有网友说,这即是咱们可爱 Bad Apple 的原因,它老是能带给咱们更多惊喜。
PS:如果你还不知谈 Bad Apple,它是来自《东方 Project》中的一个音乐 MV,还是成为动画界和科技界的一个梗。不仅有各式二创视频,天下还会在各式硬件和软件上复现它,可以说"有屏幕的处所就有 Bad Apple "。
怎样作念到的
网友 Nolen Royalty 还温雅共享了用 Vim 制作 Bad Apple 的经由,主要分为以下 4 步:
1. 提真金不怕火画面帧养息成数组
第一步相当简短,使用 GitHub 用户 Felixoofed 的库就可以得到 Bad Apple 每一帧的数据。
这个仓库内部包含了原始的视频以及一个 ffmpeg 大叫,可以将视频养息为约 6500 张 PNG 图片,每张代表一帧。
然后 Nolen 编写了一小段 Python 代码,将每个 PNG 文献养息为 0 和 1 的二维数组(其中 1 代表玄色像素)。
视频开始是 480x360 分辩率,在测量了结尾后 Nolen 将其削弱到 120x90。
from PIL import Imageimport numpy as np
def process_image ( path, target_width=120, target_height=90 ) : img = Image.open ( path ) img = img.resize ( ( target_width, target_height ) , Image.Resampling.LANCZOS ) if img.mode != "L": img = img.convert ( "L" ) pixels = np.array ( img ) binary_pixels = ( pixels
def text_preview ( binary_pixels ) : chars = {0: ".", 1: "#"} return "n".join ( "".join ( chars [ px ] for px in row ) for row in binary_pixels )
2. 用 Vim 的高亮匹配功能绘制轻易矩形
那么如安在 Vim 中绘制图形呢?
假定你在文本中创建了一个主要由 A 构成的网格,并在其中镶嵌一个由 B 构成的绘图,这么如果你搜索 B,就会看到一个小的棍状东谈主物图形:
快播色片网
使用这个措施就可以绘图了,然而还存在 2 个问题:
a. 蓝色高亮(Vim 默许)看起来不太明晰。
Vim 允许用户自行树立高亮功能,调用 hi Search cterm=NONE ctermfg=grey ctermbg=grey ,就可以让它用计划的神采高亮匹配字符的远景和配景,这么就能得到漂亮的方块:
b. 第二个问题是,如何将矩形变为正方形像素。
Nolen 最终找到了Square 字体,这是一个正方形的字体,它开始是为了让用户在结尾中玩 roguelike 游戏而谋划的,在 Vim 中使用它可以绘制一个相当漂亮的网格:
接下来即是分析每帧画面的信息,生成一个针对主要图形的正则抒发式优化文献。
然后作家发现,用 Vim 自带的搜索功能就可以生成连气儿的矩形。
/%l /%>l /#l Matches below a specific line ( higher line number ) .%.l Matches at the cursor line.%.l Matches below the cursor line.
Vim 搜索可以匹配特定的行号(和列号),你可以将多个这么的搜索组合在通盘。
举例, %>5c%4l%
况兼,这种匹配格式还可以和其他 Vim 搜索进行 OR 操作,比如将上头的式子和 - %>5c%4lcl%
这么,使用单个搜索式就可以松懈地在屏幕上绘制许多矩形。
3. 将动画帧的图形养息成矩形
接下来,就得把图像的网格(90x120,约 10000 个像素)拆成一个个矩形。
Nolen 开始尝试找出通盘不相同的矩形并生成长搜索字符串、唐突把网格拆成最少可填满的矩形,但两种尝试均以失败告终。
最终他念念出了一个很简短的算法,它是这么使命的:先在图像的第一滑里,把通盘连气儿的" 1 "的部分找出来。找完第一滑,再看第二行,找出和第二行找到的部分有重复的处所。
淌若把这个重复部分和第一滑合起来变成的矩形的面积,比单独这两行变成的矩形的面积都大的话,就把它们同一成一个矩形。然后就一直握续下去,尽量把新找到的部分同一到之前的矩形里。
这个算法时常情况下推崇得可以。但当搜索字符串迥殊 10000 个字符,就会严重拉低每秒的帧数。
Nolen 于是又写了两个照管决议(从左到右构建矩形的算法版块和仅检讨各个行的简短 RLE),然后通过三种算法运转每个帧并遴荐最短搜索格式,这个组划算法最终成果可以。
# Number of times each approach was pickedoriginal approach ( top to bottom merging ) - 1110left to right merging - 2239single-row RLE - 3300
4. 栽种好 Vim 宏就可以在剪辑器中播放动画了
理会好了图形,终末的一个问题即是:如安在 Vim 中播放视频。具体要津如下:
1.Vim 栽种:顶部中心窗口播放视频,是一个包含 90 行每行 120 个空格的文献,傍边两侧是用于图像居中的空缓冲区,底部窗口是约 6500 个搜索格式列表。
2. 使用 Vim 宏播放视频:Vim 宏可以纪录一系列击键操作,便捷重播。宏大叫为"" ay$:let @/=@a^M+ ",具体来说,即是对寄存器 a 操作,拉动到行尾,将寄存器 / 的本色栽种为寄存器 a 的本色,奉行大叫,然后挪动到下一滑来源。这么栽种宏可以让光标总结到正确位置,反复迭代即可已矣重播。
3. 优化:最真义的优化操作是" let @/=@a ",比较" /^Ra^M "操作,它幸免了过长的查询操作导致搜索窗口耀眼严重和帧率镌汰的问题。
4. 运转宏:可以运转" 1500@q "(假定宏纪录在寄存器 q 中)播放宏 1500 次,快速运转 1500 帧。
这么一来,就终于能得到来源的 Bad Apple 视频啦!
作家还示意,由于是在一天内完成的名目,还有许多可以完善的细节,比如可以创建结构高超的文献来使用传统正则抒发式而非 Vim 的行 / 列搜索功能,以及帧率的厚实性方面还可以链接加强。
万物齐可 BadApple
除了用 Vim 剪辑器,网友们在 Bad Apple 整活上一直都脑洞打开,可以说惟一你念念不到,莫得网友作念不到的。(doge)
比如有东谈主用马里奥游戏复现:
还有在电脑结尾中敲几个大叫就能运转的:
hongkongdoll face reveal甚而包括一些奇奇怪怪的硬件,包括快被淘汰的旧式电视机、电磁表露屏、甚而作念践诺用的示波器都可以:
看来,东谈主类对 Bad Apple 的开导可能还不到 10% 啊,期待以后能看到更多的整活视频(搓手手)
参考汇集:
[ 1 ] https://news.ycombinator.com/item?id=42674116
[ 2 ] https://eieio.games/blog/bad-apple-with-regex-in-vim/快播色片网
品种 最高价 最廉价 大量价 大白菜 6.36 0.20 1.08 生菜 8.00 2.60 4.83 菠菜 8.50 2.00 4.05 洋白菜 6.00 0.66 1.68 胡萝卜 6.00 0.80 2.42 土豆 7.00 0.66 2.35 葱头 17.00 1.00 2.41 大葱 12.60 1.00 4.51 芹菜 9.40 3.00 4.6...
hongkongdoll face reveal 证券日报网讯 1月15日晚间,禾迈股份发布公告称快播色片网,公司2025年第一次临时推动大会审议通过了《对于变更公司注册本钱、纠正并办理工商变更登记的议案》。...
今天咱聊点硬核的。你知谈,科技这玩意儿,老是能让东谈主脑袋嗡地一下郁勃起来就像喝了两罐冰可乐似的。这不,2025年1月12日那天,一堆奋发东谈主心的大事扎堆冒出来,从航天到交通,从生态保护到医疗时刻快播色片网,再到国际探伤任务,齐全透着一种当年感。我们一个个冉冉捋啊,可别急。 hongkongdoll face reveal 提及航天,你听过昊龙货运航天飞机...
(原标题:乐歌股份瞻望2024年净利最高降52%快播色片网,国际仓库容率70%驾御) 乐居财经 李兰 1月15日,抑止收盘,乐歌股份(300729.SZ)股价跌1.18%,报15.11元,总市值为51.57亿元。 据乐歌股份2024年度事迹预报快播色片网,包摄于上市公司推进的净利润3亿元–3.4亿元,比上年同时下跌52.66%-46.35%;扣除非频繁性损益...
比特币涨幅扩大至5%快播色片网,升破97000好意思元;以太坊日内涨近7%,报3250好意思元。...