字符动画之QQ聊天窗口版

看到最近技术宅是如此的火,比如 Word 版 Only my railgun(http://v.youku.com/v_show/id_XMTM3Mjg5OTcy=.html)、Vim 版 Bad Apple(http://v.youku.com/v_show/id_XMTQ0MjM4Nzg4.html)。我也来玩玩技术宅,装一下逼。。。

 

做出来的效果看这里(请用高清):

http://v.youku.com/v_show/id_XMjA2OTgzMjcy.html

 

这个是原始视频:http://v.youku.com/v_show/id_XMjIyNjcwMA==.html。另外顺便一提,我这个视频跟原始视频的同步是很精确的,你可以比较一下。

 

想到要玩就玩以前的人都没有搞过的,所以我想到了用 AutoHotKey(http://www.autohotkey.com/)通吃任意文本编辑器。基本原理是先把视频中的每一帧抓下来保存成图片,再使用 aview(http://aa-project.sourceforge.net/aview,cygwin 里有 Windows 版)将图片转换成字符,这个直接参考了七星庐大神的攻略:http://qixinglu.com/archives/vim_is_ascii_player。

 

字符动画之QQ聊天窗口版_第1张图片

 

然后一段很简单的 AutoHotKey 脚本:

#b:: Loop, read, files.txt { FileRead, Clipboard, %A_LoopReadLine% if not ErrorLevel { Send ^v Sleep 37 } } return

每一帧图像都存到一个文件里,这些文件的名字存到 files.txt 里面。再在 AutoHotKey 中把每个文件的内容读到剪贴板里,然后每隔 37 毫秒向程序发送 Ctrl+V 。这个 37 是个经验值,是试出来的,对应于 18fps 的视频。

 

其他就是 mplayer 可以直接输出 pnm 格式的图片:

mplayer -vo pnm:outdir=xop18 X3-1.mp4

其实 pnm -> txt 这个过程可以写个 Makefile 然后 make -j3 多线程并行转换,只不过懒得写了,直接用 start 命令(http://technet.microsoft.com/zh-cn/library/cc755674(WS.10).aspx)实现多进程。

你可能感兴趣的:(字符动画之QQ聊天窗口版)