Tag: gif

在java中显示Gif动画

您好我正在使用Swing在Java 1.6上编写GUI应用程序。 我有一个弹出屏幕,应该显示一个gif动画,而我的Swing gui正在加载,还有一点点之后。 我的弹出屏幕是JDialog。 动画应显示在以下列方式添加到Jdialog的JLabel上: ImageIcon myImgIcon = getMyImgIcon(); JLabel imageLbl = new JLabel(myImgIcon); add(imageLbl, BorderLayout.CENTER); 现在的事情是动画只在gui加载后显示。 我相信在加载GUI时(在我的应用程序中这是一个繁重的操作),EDT非常繁忙,无法运行动画。 请参阅如何使用线程显示动画GIF图像 。 现在问题是我在不同的线程(不是EDT)上加载GUI是错误的,所以我不知道如何解决问题。 有没有人有想法?

Java GIF动画无法正确重新绘制

我正在尝试为GIF图像制作动画。 动画有效,但画面效果不佳。 它显示如下(非动画截图): 在图像中,尾巴像这样摇晃: 如您所见,图像不能很好地重现。 我不想使用JLabel,但是没有正常工作,所以当我的图像没有动画时我就按照这个问题 。 我的代码是这样的: public void draw(JPanel canvas, Graphics2D g2d, int x, int y) { getFrontImage().paintIcon(canvas, g2d, x, y); } 检索和保存图像的位置如下: ImageIcon gif = new ImageIcon(getClass().getResource(filename)); 在JPanelcanvas中,我制作了一个paint方法和一个每10ms重绘一次的计时器线程。 这适用于除GIF之外的所有事情。 谁可以帮我这个? —编辑 我很抱歉误会,我已将图像更新为我实际使用的图像。 我希望得到正确答案并不是太麻烦……

使用java将透明gif / png转换为jpeg

我想使用Java将gif图像转换为jpeg。 它适用于大多数图像,但我有一个简单的透明gif图像: 输入gif图像http://img292.imageshack.us/img292/2103/indexedtestal7.gif [如果图像丢失:它是一个蓝色圆圈,周围有透明像素] 当我使用以下代码转换此图像时: File file = new File(“indexed_test.gif”); BufferedImage image = ImageIO.read(file); File f = new File(“indexed_test.jpg”); ImageIO.write(image, “jpg”, f); 此代码可以在不抛出exception的情况下工作,但会导致无效的jpeg图像: 输出jpeg图像http://img297.imageshack.us/img297/3493/indexedtest1qe5.jpg [如果图像丢失:IE无法显示jpeg,Firefox会显示无效颜色的图像。] 我正在使用Java 1.5。 我还尝试使用gimp将示例gif转换为png并使用png作为Java代码的输入。 结果是一样的。 这是JDK中的错误吗? 如何在没有第三方库的情况下正确转换图像? 更新: 答案表明jpeg转换无法正确处理透明度(我仍然认为这是一个错误)并建议使用预定义颜色替换透明像素的解决方法。 这两种建议的方法都非常复杂,所以我实现了一个更简单的方法(将作为答案发布)。 我接受了第一个已发布的答案(Markus)。 我不知道哪种实现更好。 我选择最简单的一个,但我发现它不能正常工作。

将每个动画GIF帧转换为单独的BufferedImage

我希望能够将动画GIF作为输入,计算帧(以及可能的其他元数据),并将每个转换为BufferedImage 。 我怎样才能做到这一点?

有效的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”结果(帧之间的颜色闪烁)。