NiceLeeのBlog 用爱发电 bilibili~

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

2020-06-14
nIceLee

阅读:


王境则·真香.gif谁赞成谁反对.gif为所欲为.gif
网络上有很多搞笑的gif图片,里面的对白还是可以自定义的。
想搞这个想了很久了,最近终于把它实现了。

前言

  • 光是文字没啥具体指向,先把网上的一个成品贴出来:
  • 要实现这个功能,得先搞清楚大致原理,其中最主要的实际上就是对GIF这种格式的文件进行操作。
    当然,在这里我们可以细分:
    • 从GIF里面读取每一帧的图像
    • 对图像进行处理,比如缩放/拉伸、添加文字等等
    • 有了若干图像帧,如何按照恒定帧率生成GIF

实现

  • 这里先讲如何从GIF里面读取每一帧的图像
    下面的实现是将sample.gif中每一帧都保存下来
    File gif = new File("sample.gif");
    ImageReader reader = (ImageReader) ImageIO.getImageReadersByFormatName("gif").next();
    ImageInputStream ciis = ImageIO.createImageInputStream(new FileInputStream(gif));
    reader.setInput(ciis, true);
    try {
      for (int i = 0;; i++) {
          BufferedImage image = reader.read(i);
          ImageIO.write(image, "jpg", new File(String.format("%03d.jpg", i)));
      }
    } catch (IndexOutOfBoundsException e) {
    }
    ciis.close();
    

源码

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


内容
隐藏