如何在 Java 中创建动画 gif?
Posted
技术标签:
【中文标题】如何在 Java 中创建动画 gif?【英文标题】:How can I create animated gif in Java? 【发布时间】:2011-07-18 00:15:33 【问题描述】:我想从一组 BufferedImages 创建一个 gif 图像。我怎样才能做到这一点?纯 Java 中是否有这样的库(ImageMagick 不是一个选项)?我找到了 Gif4J 库,但它不是免版税的。
【问题讨论】:
试试这个gif encoder。 相关问题: - Creating Animated-gif with imageio 还有这个elliot.kroo.net/software/java/GifSequenceWriter 似乎运作良好。 This 链接和那里的 wiki 示例将满足您的需求。您也可以控制帧速率。它是纯 Java。您甚至可能不需要使用 imageio! ——dragon66 2014 年 9 月 19 日 19:47 和this 易于使用的独立AnimatedGIFWriter。 【参考方案1】:我只是回答了一个类似的问题here,但我认为我的解决方案可以提供帮助。
'ImageIcon' 类允许您加载 gif 动画。我用'getResource()'加载图像。为此,我通常使用 URL 类来传递文件路径。正如名称 URL 所暗示的那样,在远程计算机中不需要该路径。
URL url = This.class.getResource(path);
Icon myImgIcon = new ImageIcon(url);
JLabel imageLbl = new JLabel(myImgIcon);
component.add(imageLbl, BorderLayout.CENTER);
path 将是类文件夹中 gif 的路径。
参考资料: http://docs.oracle.com/javase/tutorial/uiswing/components/icon.html#getresource
【讨论】:
【参考方案2】:有一个图像处理库,类似于 Picasso,它使用 Lifelogger 提到的相同的 AnimatedGifEncoder 类- Glide Docs, Glide
AnimatedGifEncoder e = new AnimatedGifEncoder();
e.start(outputFileName);
e.setDelay(1000); // 1 frame per sec
e.addFrame(image1);
e.addFrame(image2);
e.finish();
【讨论】:
以上是关于如何在 Java 中创建动画 gif?的主要内容,如果未能解决你的问题,请参考以下文章