找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 3980|回复: 9

这样的GIF是怎么制作出来的?

[复制链接]

1109

主题

1649

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
244
威望
743 点
宅币
24180 个
贡献
46222 次
宅之契约
0 份
在线时间
2294 小时
注册时间
2014-1-26
发表于 2014-12-4 10:45:32 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
14ce36d3d539b6005bcfc30de850352ac65cb703.gif
回复

使用道具 举报

1

主题

21

回帖

116

积分

用户组: 小·技术宅

UID
2198
精华
0
威望
2 点
宅币
67 个
贡献
23 次
宅之契约
0 份
在线时间
11 小时
注册时间
2017-1-26
发表于 2017-2-8 20:12:40 | 显示全部楼层
我的天0xAA55大大居然会问问题,那好吧我就口胡几句当是个回答吧
这种GTF中的图形不难看出是用字符构成,但是仔细看发现他是用字符构成色块的线条的,而且帧与帧之间没有很明显的闪烁,所以肯定不是一般的像素转字符那么简单
头脑风暴一番之后,个人感觉应该是这样:
1.首先把一段视频解码出来,做成帧序列。
2.对每一个帧序列进行 查找边缘 算法,求出边缘。
3.对每一个求出边缘的图形进行模糊匹配,计算出色块的变形和移动
4.根据前后帧计算每一个色块的颜色值
5.用查表大法算出每一个字符像素位点的线条方向和颜色
6.合成成一个文本序列
7.将每一帧的文本序列写成一个图片序列
8.图片序列转换GIF

大体说一下所用的软件吧
1:众多视频编辑软件都可以,亲测C4D 导入视频之后可以导出帧序列,但建议用PR或者AE之类的软件
2,3,4,5,6,7:这些恐怕得要自己编程了,但是难度不是很大,毕竟资料百度都能找到
8:同1,大多数视频编辑软件都可以

= =
以上内容如有谬误,则纯属口胡
回复 赞! 2 靠! 0

使用道具 举报

1

主题

6

回帖

22

积分

用户组: 初·技术宅

UID
939
精华
0
威望
1 点
宅币
13 个
贡献
0 次
宅之契约
0 份
在线时间
0 小时
注册时间
2015-7-4
发表于 2015-7-5 00:00:36 | 显示全部楼层
可能有两种做法:
1、人工敲的ASCII画面组成动画;
2、使用ascii animator之类的工具将原本的动画gif转成字符画面gif。such as http://www.pc6.com/softview/SoftView_57332.html
回复 赞! 靠!

使用道具 举报

1109

主题

1649

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
244
威望
743 点
宅币
24180 个
贡献
46222 次
宅之契约
0 份
在线时间
2294 小时
注册时间
2014-1-26
 楼主| 发表于 2017-2-8 20:57:05 | 显示全部楼层
simakeng 发表于 2017-2-8 20:12
我的天0xAA55大大居然会问问题,那好吧我就口胡几句当是个回答吧
这种GTF中的图形不难看出是用字符构成,但 ...

难点就是这个模糊匹配了,怎么匹配边缘,是个问题。
顺带。。我是想知道这个编程的算法原理,而非用什么软件能做。
谢谢解答
回复 赞! 靠!

使用道具 举报

1

主题

21

回帖

116

积分

用户组: 小·技术宅

UID
2198
精华
0
威望
2 点
宅币
67 个
贡献
23 次
宅之契约
0 份
在线时间
11 小时
注册时间
2017-1-26
发表于 2017-2-8 23:44:43 | 显示全部楼层
0xAA55 发表于 2017-2-8 20:57
难点就是这个模糊匹配了,怎么匹配边缘,是个问题。
顺带。。我是想知道这个编程的算法原理,而非用什么 ...

Git上应该有很多这样的算法,可惜英语渣= =
这里是一个sobel算子进行计算的算法原理:
http://baike.baidu.com/link?url= ... yqt--jsR_WnybKYXTPZ
这里是sobel算子算法的解析:
http://www.cnblogs.com/lancidie/archive/2011/07/17/2108885.html
这里有对这个算法的一些研究:
http://www.cnblogs.com/Imageshop/p/3171425.html

用OpenGL或者Dx的comput shader去计算效率会高很多,但是做这个GIF图纯C应该够用了

= =
回复 赞! 靠!

使用道具 举报

1

主题

21

回帖

116

积分

用户组: 小·技术宅

UID
2198
精华
0
威望
2 点
宅币
67 个
贡献
23 次
宅之契约
0 份
在线时间
11 小时
注册时间
2017-1-26
发表于 2017-2-8 23:45:51 | 显示全部楼层
0xAA55 发表于 2017-2-8 20:57
难点就是这个模糊匹配了,怎么匹配边缘,是个问题。
顺带。。我是想知道这个编程的算法原理,而非用什么 ...

从这个GIF上看,这是炮姐吧23333
动漫的边缘查找相对来说会简单很多
毕竟制作方式决定了这个
回复 赞! 靠!

使用道具 举报

0

主题

18

回帖

48

积分

用户组: 初·技术宅

UID
2268
精华
0
威望
1 点
宅币
28 个
贡献
0 次
宅之契约
0 份
在线时间
2 小时
注册时间
2017-2-21
发表于 2017-2-23 15:00:02 | 显示全部楼层
这效果有点叼啊
回复 赞! 靠!

使用道具 举报

3

主题

17

回帖

25

积分

用户组: 初·技术宅

UID
4079
精华
0
威望
0 点
宅币
5 个
贡献
0 次
宅之契约
0 份
在线时间
0 小时
注册时间
2018-7-22
发表于 2018-7-22 13:07:12 | 显示全部楼层
找到照片然后用gif生成器制作
回复 赞! 靠!

使用道具 举报

0

主题

70

回帖

164

积分

用户组: 小·技术宅

UID
1291
精华
0
威望
2 点
宅币
89 个
贡献
1 次
宅之契约
0 份
在线时间
2 小时
注册时间
2015-11-25
发表于 2018-9-16 17:22:17 | 显示全部楼层
回复

使用道具 举报

12

主题

35

回帖

959

积分

用户组: 大·技术宅

UID
3517
精华
1
威望
36 点
宅币
802 个
贡献
33 次
宅之契约
0 份
在线时间
207 小时
注册时间
2018-3-2
发表于 2020-2-12 13:45:59 | 显示全部楼层
本帖最后由 套路 于 2020-2-12 14:14 编辑

这个叫字符画吧,普通的字符画差不多是这个样子吧

首先是这个字符,就和站长的Fill wool将方块显示像素一样 这里用字符(只有黑白所以只能取灰度)来显示像素
调色板(由灰度大到灰度小0(黑)→255(白))例如:@#&$%*o!;. 或者 叕叒双又三二一

先把图片每8*16(如果调色板是半角字符)或16*16(如果调色板是全角字符)获取灰度值 wiki上的算法
然后用调色板第[四舍五入的(灰度值*调色板字符个数/255)]个字符来替换这8*16或16*16的像素

如果要提高这个的清晰度,可以增加调色板字符的数目,把每8*16改成4*8、2*4等等

但你要是要是看这gif,不可能是这样算出来了的
1 上面的再修改 比如将边框的字符精处理了,比如_\/|这样的,在有连续像素值突然差别特别大的时候匹配上去
2 暴力方法 给每8*8这样的像素做个字典
回复 赞! 靠!

使用道具 举报

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-3-19 15:54 , Processed in 0.048526 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表