KeyFC欢迎致辞,点击播放
资源、介绍、历史、Q群等新人必读
KeyFC 社区总索引
如果你找到这个笔记本,请把它邮寄给我们的回忆
KeyFC 漂流瓶传递活动 Since 2011
 

【伪】技术貼,badapple命令行版的制作……

[ 8125 查看 / 7 回复 ]

为了反映档中央的号召,实现发又好又有质量的帖子,于是我就发了(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……如果我学操作系统和汇编顺利地话……现在已经能打印字符了,应该也不会晚……

继续下潜……
最后编辑uil 最后编辑于 2010-02-11 21:05:27
1

评分次数

    分享 转发
    TOP

    回复:【伪】技术貼,badapple命令行版的制作……

    某无知群众表示这帖子的质量好过头了.....理解不能...=3=
    唯一能理解的就是,我觉得坏苹果不是很好听.....
    TOP

    回复:【伪】技术貼,badapple命令行版的制作……

    Bad Apple...
    是那個東方的麼?= =
    我只覺得那些剪影很漂亮... (拖
    TOP

    回复:【伪】技术貼,badapple命令行版的制作……

    我认为可以开一块技术板块。
    像楼主这类技术宅就应该抓进去当苦力。。。
    理解不能。
    尤其看到那句。。。
    代码很简单。(泪奔
    _______________
    热情不减,少年依旧。
    _______________
    TOP

    回復:【偽】技術貼,badapple命令行版的製作……

    話說你搞這個我看不懂阿?
    (這是做什麼用的阿?)
    我很正常
    P.S.目前玩遙仰鳳凰中下款是eden*(緩慢下載=.=)
    TOP

    回复:【伪】技术貼,badapple命令行版的制作……

    Linux下面不是有一个播放器可以把console作为render surface么...
    飛べない翼に、意味はあるんでしょうか?
    TOP

    回复 6F Prz 的帖子

    我知道,不过晚了……

    所以后来没什么动力搞……

    话说把你老炸出来了……

    TOP

    回复:【伪】技术貼,badapple命令行版的制作……

    我記的之前Louter的小魔獸也有做過 bad  apple
    那種剪影技巧實在太棒了
    不過,LZ做出來的紅白已經肥了 = =||||
    水羊不可一日無牡丹!!!
    你今天膜拜牡丹神了沒??
    TOP