Tag: animated gif

读取动画GIF中帧之间的延迟

你如何阅读每帧之间动画GIF的控制块? 我对每帧之间的延迟感兴趣。 我看过ImageReader的Javadoc,我什么都没看到。 这是我从动画GIF中读取所有帧的代码,如何增强它以读取动画GIF中嵌入的每个帧的元数据? List list = new ArrayList(); try { ImageReader reader = ImageIO.getImageReadersBySuffix(“gif”).next(); reader.setInput(ImageIO.createImageInputStream(urlImage.openStream())); int i = reader.getMinIndex(); int numImages = reader.getNumImages(true); while (i < numImages) { list.add(reader.read(i++)); } // do stuff with frames of image… } catch (Exception e) { e.printStackTrace(); }

动画ImageIcon作为按钮

我有一个imageIcon作为Button,现在我想在翻转时为它设置动画。 我试图在setRolloverIcon(Icon)上使用动画gif(没有循环)。 但当我再次hover在按钮上时,gif不再播放了。 当我使用循环gif然后它从随机帧播放它。 我尝试使用paintComponent将Shape或图像绘制为Button,它工作正常,但即使我使用setPreferredSize()或setSize()或setMaximumSize(),Button也会使用其默认大小,如图所示(中间)按钮)。 我使用GroupLayout,这可能是问题吗?

如何使用ImageWriter和ImageIO在Java中编码动画GIF?

我到处都看了,但似乎找不到任何易于理解的解释。 (我发现其他Java用户编写的类和方法可以做到这一点,但我希望自己编写。)

在ImageButton中使用gif

如果有人点击它,如何在ImageButton的src中切换动画GIF图像和静态GIF图像? 在onCreate()我有这个 aButton3 = (ImageButton) findViewById(R.id.imageButton3); SharedPreferences sharedPreferences = getSharedPreferences(“NAME”, Context.MODE_PRIVATE); Boolean e = sharedPreferences.getBoolean(“clicked3”, false); 当有人单击ImageButton时,将执行以下操作 public void buttonClick2(View v) { SharedPreferences sharedPreferences = getSharedPreferences(“NAME”, Context.MODE_PRIVATE); Boolean d = sharedPreferences.getBoolean(“clicked2”, false); if (!d) { toggleSound.start(); aButton2.setImageResource(R.drawable.on); sharedPreferences = getSharedPreferences(“NAME”, Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putBoolean(“clicked2”, true); editor.commit(); } if(d){ toggleSound.start(); aButton2.setImageResource(R.drawable.off); sharedPreferences = getSharedPreferences(“NAME”, […]

动画GIF导致SplashScreen为空

我知道这可能接近这个post的重复: Splashscreen中的动画GIF 但是,因为它似乎没有答案,我无法评论它或任何我很抱歉重新发布这个,但如果有人能给我一个答案,那将是很棒的。 我正在制作游戏,这个游戏需要花费很多时间才能开始。 因此,我想在加载屏幕期间给用户反馈,以便他知道应用程序没有崩溃。 这就是我使用java 7中的SplashScreen API的原因。 在eclipse中,当我在VM Arguments中使用以下配置运行我的应用程序时, SplashScreen.getSplashScreen()返回null 。 -splash:src/aapplication/Splash.gif 但是当我使用这个配置时,它工作正常(我必须在同一个包中的文件,一个是Splash.png和另一个Splash.gif ): -splash:src/aapplication/Splash.png 在jar文件中(在MANIFEST.MF ),这不起作用: SplashScreen-Image: aapplication/Splash.gif 虽然这样做: SplashScreen-Image: aapplication/Splash.png 我的GIF大小约为1Mb,而PNG大约为50kb。 任何人都可以向我解释为什么在PNG的情况下甚至无法加载GIF(我知道它不是路径,因为它们有相同的)? 我看到的每个地方都说它应该和PNG一样好用。 谢谢你的帮助!

在JButton上动画GIF,在鼠标hover时播放它

Icon icon = new ImageIcon(getClass().getResource( “/img/icon.gif” ) ); aButton = new JButton(“Its a button”, icon); 是否有某种方法可以阻止动画播放? 我正在考虑分配gif的静态jpg,然后当我hover时,分配动画gif,但我不认为在MouseMotionListener有一个取消鼠标的事件,所以我可以加载回静态jpg。 然而,按钮中的gif循环,如果我将鼠标hover在按钮上,它就会消失。 如果我的鼠标光标不在按钮上,如何使gif静态? 如果我使用MouseMotionListener ,如果我取下鼠标它会触发事件吗? @Override public void mouseMoved(MouseEvent e) { //play the gif //if I take mouse off, call some method to stop playing animated gif } @Override public void mouseDragged(MouseEvent e) { }

如何在Java中创建动画gif?

我想从BufferedImages集创建一个gif图像。 我怎样才能做到这一点? 纯Java中是否有这样的库(ImageMagick不是一个选项)? 我找到了Gif4J库,但它并不是免费的。

为什么gif动画在paintComponent()中使用它时没有动画?

我正在使用paintComponent()在JPanel的背景上绘制一个gif动画图像。 它显示了gif但没有动画。 我使用java 1.5,我知道我可以使用带有图标的标签。 有没有人知道为什么以及如何解决它? private static class CirclePanel extends JPanel { ImageIcon imageIcon = new ImageIcon(BarcodeModel.class.getResource(“verify.gif”)); Point point = f.getLocation(); protected void paintComponent(Graphics g) { Graphics gc = g.create(); Graphics2D g2d = (Graphics2D) g.create(); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f)); g2d.setColor(Color.BLUE); g2d.drawImage(imageIcon.getImage(), getWidth() / 2, getHeight() / 2, null); g2d.drawRect(0, 0, getWidth(), getHeight()); g2d.setStroke(new BasicStroke(10f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_MITER)); g2d.setFont(g.getFont().deriveFont(Font.BOLD […]

如何在JTable单元格中显示动画

我正在寻找一种在表格单元格中显示动画进度指示器(动画GIF,通过Java2D等呈现的旋转轮,此处没有首选项)的方法,直到计算或检索到最终显示的值。 到目前为止,我刚刚将一个静态的“待处理…”文本放入每个尚未准备加速显示的单元格中。 当数据从后台线程到达时,我将其放入适当的单元格并在表格上调用重绘。 使用静态标签或图像,这可以正常工作,但因为单元格渲染仅将其用作橡皮图章的一种,并且不会为每个单元格创建单独的实例(这当然是性能上的好主意),例如动画GIF不是在单个细胞中“玩”。 我怎样才能达到这样的效果? 与仅仅是一个简单的文本相比,它将形成一个更“精致”的UI。

有效的gif /图像颜色量化?

所以我试图在我的Java应用程序中编码一些动画gif文件。 我一直在使用在线发现的一些类/算法,但似乎没有一个工作得很好。 现在我正在使用这个量化类将图像的颜色减少到256: http : //www.java2s.com/Code/Java/2D-Graphics-GUI/Anefficientcolorquantizationalgorithm.htm 问题是,它似乎并不是非常“聪明”。 如果我传入的图像超过256种颜色,它确实会减少颜色数,但效果不是很好。 (红色变成蓝色等 – 非常明显的错误就像这样)。 您可以推荐使用Java中的颜色量化的其他算法/库吗? 注意:我知道这个算法中使用的Neuquant: http : //www.java2s.com/Code/Java/2D-Graphics-GUI/AnimatedGifEncoder.htm 它非常慢并产生“eh”结果(帧之间的颜色闪烁)。