首页 » 技术分享 » C# 东方幻想乡

C# 东方幻想乡

 

这是一个《东方幻想乡》动画的小程序,我朋友对我说的是

“有屏幕的地方 就有《bad apple》” 我记得好像是这样的、

Bad Apple DIY 制作时不可播放视频与图片那样违背了应有

的做法 所以需要去模拟信号在渲染动画 可能有些绕口

 

// 动画视频欣赏:233

窗口:http://v.youku.com/v_show/id_XMTMwMzE2NzczNg==.html?from=y1.7-1.2

控制台:http://v.youku.com/v_show/id_XMTMwMjIxODMzNg==.html?from=y1.7-1.2

 

// 录制一段VideoToGif

       原理倒也很简单,看下图你应该发现了问题所在 Bad Apple

DIY之所以流行在于动画是类两色值,我们认黑白吧,

左边那位 采样480P视频然后以640*480像素把图像绘制到界

面上 当然即使用D2D绘图也不怎么样 最多可以缓解CPU的

分压力 在这里CPU所承受的压力重点在于采样后的字节

被重新计算为图像 且每秒钟重复三十次可想而知对CPU压

力有多大,利用GDI绘制图像丢失性能是主要问题(诟病)

        不过我并不在意性能有多好 反正我与我朋友的电脑可以播放那便

可以 在文件代码中并不存在采样视频纹理部分 不过可以简单的摆摆、

在上面的代码你看到了frame[(x * 120) + y]它是一个单维数组,不过在

此处你需要把它看成二维数组,然后综合它的名字为帧 那么你很容易

联想到帧宽度(Frame Width)、帧高度(Frame Height) 对的、它在这里

的确是那个意思

       里面每个字节都是一个像素点的信号 但是由于该视频被彻底作黑

白,所以绘制出图像信号的时候是以Black与White、

       采样首先把视频帧转换成图片JPG, BMP, PNG,然后在编写程序

把所有图片导入内存通过分析图片像素点上的颜色,写入帧缓冲到输

出文流 使用并行或线程池等方式同时运行多个类似任务 快速的把结

果生成为文件 在进行压缩不压缩的话文件体积特别之大、

       上面是跳帧的部分 这里主要修复帧的问题 纹理文件已经成型

如果再重新制作相当麻烦 所以利用跳帧的方式快速解决某些视频

段脱帧的问题 看起来一卡一卡的 即使如此也不容易 一遍遍的重新

运行然后看帧哪里开始帧 然后开始跳帧的 也是很累的吗、 控制

台是把帧信号转换成字符串信号,与窗口是同曲异工、

       有必要介绍一下共享的东方幻想乡中有哪些东西

1. Window Example / 窗口源代码

2. Console Example / 控制台源代码

3. 4.0 && 2.0 / 控制台动画

4. View / 窗口动画

 

各位大侠们的《Bad Apple》

http://www.bilibili.com/video/av2291284/
http://www.bilibili.com/video/av43419/
http://www.bilibili.com/video/av573720/
http://www.bilibili.com/video/av531458/ 
http://www.bilibili.com/video/av2483576/

 

需要注意的一点是第一次运行可能会无法显示动画

只有音乐 不要害怕站起来鲁 那是一妹小BUG 1+1=2

下载地址http://share.weiyun.com/43792335689e1a651e45ef235370f6ed

 

转载自原文链接, 如需删除请联系管理员。

原文链接:C# 东方幻想乡,转载请注明来源!

0