为了反映档中央的号召,实现发又好又有质量的帖子,于是我就发了(PAI
好吧,其实这是我寂寞才发的……大家寂寞的围观把……
-----------------------------------------------------------------------------------------------------------------------------
首先,准备一个bad apple的干净清晰版。可以原版flash好,不过avi阿mp4阿更好,最好不要用flv或字幕版,会有影响的~找到后使用:
mplayer -ss 0 -noframedrop -nosound -vo jpeg -frames 8000 out.avi
来把它分解为图片。out.avi为bad apple的视频,8000为视频的帧
数,不过视频实际上只有6569帧,设置大了没关系,到了它会自动停止的。
搞掂后生成6569个jpeg图片,一共65MB:
这里为了方便,就不考虑图片的边界问题(边界可是个大工程……),直接把这些图片转成黑白两色,方便处理:
find ./-name '*.jpg' -exec convert {} -resize 80x60 -colors 2 {} \;
这里先转换成80x60的图片(突然想到,为什么不在mplayer那里设置图片大小……杯具……),方便表现。
注意这里路径问题,千万不要在家目录或根目录运行,不然会杯具的……转换完后就可以开始分析图片了。
代码用python实现:
# -*- coding: utf-8 -*-
#!/usr/bin/python
import Image,os
path = './%08.0d.bmp'
data = open("/./data",'bw')
for m in xrange(6569):
print(path % m)
try:
f = open(path % m)
except :
continue
img = Image.open(f)
h = img.size[0]
w = img.size[1]
for y in range(w):
for x in range(h):
data.write(' ' if img.getpixel((x,y)) else '■■')
data.write("\n")
data.write("\n")
data.flush()
data.close()
代码很简单,不过托python的强大,很快写完,虽然速度有点慢……而且处理出来的数据比较大……30mb……不过也懒得优化了……
之前用c写bmp的分析程序写道崩溃……英文不行阿……
认得出这是谁吗……
至于命令行的播放代码……这里是在拿不出手……闪屏太厉害了……而且看见网上已经有n个实现了……更是懒得再弄了……(逃
-------------------------------------------------------------------------------------------------------------------------------------------------------------
all in all,这是潜水多日后久违的上浮,当时新春贺礼把……虽然有点拿不出手……
后续更新会在我blog那里有……如果有空的话……
下一步目标是光盘启动版的badapple……如果我学操作系统和汇编顺利地话……现在已经能打印字符了,应该也不会晚……
继续下潜……