当前位置: 首页 > 面试题库 >

使用ImageIO创建动画GIF?

甄文彬
2023-03-14
问题内容

是否有人设法说服ImageIO编写动画GIF,尤其是设置正确的元数据?我的第一次尝试大致如下(其中b1和b2是BufferedImages):

ImageTypeSpecifier spec = new ImageTypeSpecifier(b1);
ImageWriter wr = ImageIO.getImageWriters(spec, "GIF").next();
wr.setOutput(ImageIO.createImageOutputStream(new File("C:\\Flashing.gif")));
ImageWriteParam param = wr.getDefaultWriteParam();
IIOMetadata meta = wr.getDefaultImageMetadata(spec, param);
wr.prepareWriteSequence(meta);
wr.writeToSequence(new IIOImage(b1, null, null), param);
wr.writeToSequence(new IIOImage(b2, null, null), param);

这似乎几乎可以工作,但是:

我显然需要以某种方式设置“适当的”元数据来设置图像之间的时间,并理想地使它们循环(我天真地希望默认设置会做一些明智的事情,但嘿…)
它默认情况下写入的任何元数据显然都不是正确的:GIMP在加载文件时会给出一些错误消息,尽管将图像嵌入Firefox的测试网页中确实可以非常快速地连续显示两个图像,这非常有趣。接近我想要的…
如果有人能够从ImageIO编写动画GIF来工作,并且可以共享一小段工作代码或如何解决上述问题,将不胜感激!


问题答案:

我遇到了这个问题,决定尝试一下。创建一个可用的类花了少量但不平凡的事情(感谢ax)-所以我想我可以分享一下代码: 这是 一个小类,用于从许多其他图像中创建动画gif图像。封存版本



 类似资料:
  • 关于 Flash 图形 Flash (SWF) 文件格式是一种基于矢量的图形文件格式,它用于适合 Web 的可缩放小尺寸图形。由于这种文件格式基于矢量,因此,图稿可以在任何分辨率下保持其图像品质,并且非常适于创建动画帧。在 Illustrator 中,可以在图层上创建单独的动画帧,然后将图像图层导出到网站上使用的单独帧中。也可以在 Illustrator 文件中定义符号以减小动画的大小。在导出后,

  • 问题内容: 我正在尝试使用AngularJS youtube频道上的演讲中所述的AngularJS创建启动屏幕?t= 10m20s 它使用ng-cloak指令。这是HTML: 和CSS: 这是一个小提琴:http : //jsfiddle.net/TimFogarty/LaBvW/2/ 在小提琴中,启动div并没有像讲话中所说的那样消失。这段代码有什么问题吗?我做错了吗?如何实现此初始屏幕? 问题

  • 我不熟悉在R中使用plotly软件包,我想制作一个线图的动画。例如,如果我绘制一个国家的人均GDP(x轴)和预期寿命(y轴)。绘本 我尝试用plotly创建一个普通的折线图,并添加frame参数(frame=~year),但该图是空白的。 我如何使用Ploly的动画功能来制作线图动画? 此外,gganimate对我来说不是一个选项,因为在Windows上运行ImageMagick似乎有问题。

  • 问题内容: 我到处都是,但是似乎找不到任何易于理解的解释。(我发现其他Java用户编写的类和方法可以做到这一点,但我希望自己编写。) 问题答案: 这是GIFanim的方法。也许那会给您一个开始。 请注意,这是一个非常幼稚的实现,所生成的图像要比使用压缩调色板并执行其他优化的库所生成的图像大得多。实现这样的库将是一项重要的任务。

  • 本文向大家介绍jQuery使用animate创建动画用法实例,包括了jQuery使用animate创建动画用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery使用animate创建动画用法。分享给大家供大家参考。具体如下: animate的用法: animate( Hash params, String|NumberJavascript 字符串或数字值 speed, Str

  • 本章将讨论创建另一类应用的方法,应用中使用了简单的可移动的动画对象。你将学习使用App Inventor创建二维游戏的基本知识,并熟练使用图片精灵(image sprite)及处理两个物体碰撞一类的事件。 当你在电脑屏幕上看到一个平滑移动的物体时,你实际上看到的是一连串快速移动的图片,每次只移动一个极小的距离,它利用了人的视觉暂留,从这一点上,它无异于“手翻书”—— 一种通过快速翻页来看到动画效果