如何分离有对话的GIF,并记录相应对话和帧数。
前言
- 光是文字没啥具体指向,先把网上的一个成品贴出来:
- 前面已经把工具基本都做好了(好吧,只是讲了简单的原理,复杂的功能实现其实就是拼积木)。
接下来要开始正式动工了。以真香.gif
为例,我们应该怎么做呢?- 获取素材(没有对话的GIF + 标准对话的GIF)
- 分离有对话的GIF,观察各个jpg图像,弄清楚有几段对话,分别出现在第几帧到第几帧,比如:
- 我就是饿死: 第0~8帧
- 死外边,从这里跳下去: 第12~23帧
- 不会吃你们一点东西: 第25~34帧
- 真香: 第37~47帧
- 对话的文字应当摆放到图像的哪个位置
- 这里主要是Y坐标要微调,X坐标可以根据对话长度自动计算
- 根据调试好的参数,以没有对话的GIF为模板,加上自定义对话,生成GIF
实现
如何分离有对话的GIF,并记录相应对话和帧数呢?
- 分离素材
// 获取素材 File source = new File("pics/真香/text.gif"); File dstFolder = new File("pics/真香/text"); GifUtil.split(source, dstFolder);
以下为结果:
- 浏览所有分离的图片,记录对话。举个例子:
- 第0张图片出现对话
我就是饿死
- 直到第8张图片
我就是饿死
仍然存在
- 第9章对话消失
- 记录: 对话
我就是饿死
出现在0~8帧
- 第0张图片出现对话