NiceLeeのBlog 用爱发电 bilibili~

Java 真香!如何给Gif添加对白(五)

2020-06-17
nIceLee

阅读:


如何分离有对话的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帧

源码

https://github.com/ButterAndButterfly/Q-Gif


内容
隐藏