当前位置: 首页 > 知识库问答 >
问题:

如何用Java从URL下载动画gif?[副本]

法和安
2023-03-14

我已经尝试了很多,但我能得到的只是第一个图像,而不是动画GIF。

目前最好的解决方案是加载一个动画gif到图标,但我需要文件。代码如下:

final URL url = new URL("http://www.freeallimages.com/wp-content/uploads/2014/09/animated-gif-images-2.gif");

JLabel l = new JLabel(new ImageIcon(url));
JOptionPane.showMessageDialog(null, l);

这里有人能帮忙吗?

这段代码只获得gif的第一个图像(不是动画):

public static void saveImage(String imageUrl, String destinationFile) throws IOException {
    URL url = new URL(imageUrl);
    InputStream is = url.openStream();
    File file = new File(destinationFile);
    file.getParentFile().mkdirs();
    file.createNewFile();
    OutputStream os = new FileOutputStream(destinationFile );

    byte[] b = new byte[2048];
    int length;

    while ((length = is.read(b)) != -1) {
        os.write(b, 0, length);
    }

    is.close();
    os.close();
}

共有1个答案

邵华皓
2023-03-14

就代码而言,它是好的,并且GIF应该得到正确的下载。(比较原始和下载的GIF的大小以确认)。现在有两点:1。Windows照片查看器无法显示动画GIF,请使用Internet Explorer代替它。
2。在Java不使用事件调度线程显示任何动画GIF,它将不会动画肯定。尝试使用其他线程显示包含动画GIF的任何帧。

从代码中可以清楚地看出,在用动画GIF初始化JLabel后不久,您已经从JOptionPane中初始化了一个对话框,不要这样做。JOptionPane中的所有对话框都是模态的,这将阻止当前线程的执行,因此您将看不到任何动画。

 类似资料:
  • 问题内容: 在iOS Swift中,我很难将动画GIF从设备图片库加载到UIImageView或从中创建.gif文件。如果它是服务器上的文件或正确在应用程序中,则显示动画GIF没问题。但是,当我从照片库中加载它时,会丢失动画。我找到了一些Objective- C解决方案,并试图将它们转换为Swift,但是没有任何运气。 这是我到目前为止的内容: 理想情况下,我想将照片库图像保存到服务器上的gif文

  • 1.4. GIF动画 下面的程序会演示Go语言标准库里的image这个package的用法,我们会用这个包来生成一系列的bit-mapped图,然后将这些图片编码为一个GIF动画。我们生成的图形名字叫利萨如图形(Lissajous figures),这种效果是在1960年代的老电影里出现的一种视觉特效。它们是协振子在两个纬度上振动所产生的曲线,比如两个sin正弦波分别在x轴和y轴输入会产生的曲线。

  • 问题内容: 我想在应用程序中显示GIF动画图像。我发现,Android本身并不支持动画GIF的困难方式。 但是,它可以使用AnimationDrawable显示动画: 开发>指南>图像和图形> Drawables概述 该示例使用在应用程序资源中另存为帧的动画,但是我需要直接显示动画gif。 我的计划是将动画GIF分解为帧,并将每个帧作为可绘制对象添加到AnimationDrawable中。 有谁知

  • 问题内容: 我尝试在我的网站中实施AJAX。单击div changepass的内容时,则应加载changepass.template.php。这是我为此使用的代码。 我的问题是在页面changepass.template.php完全加载时如何显示GIF动画(loading.gif)。请给我一些代码提示。 问题答案: 有很多方法可以做到这一点。一种简单的方法: JS: 詹姆斯·怀斯曼 ( James

  • 问题内容: 我正在尝试从jar文件中存储的动画gif创建ImageIcon。 图像加载,但仅加载动画gif的第一帧。动画不播放。 如果我从文件系统上的文件中加载动画gif,一切都会按预期进行。动画播放所有帧。所以这工作: 如何从jar文件将动画gif加载到ImageIcon中? 编辑:这是一个完整的测试用例,为什么不显示动画? 问题答案: 这从inputStream读取gif动画

  • 问题内容: 所以我有一个动画gif,我像这样加载到ImageIcon中: 我可以用这个画它: 我知道我可以使用AffineTransform动态地对其进行镜像,但是我需要能够在加载后对其进行水平镜像,以便可以根据需要绘制镜像的镜像,而无需每次重新绘制时都要对其进行转换的开销。有没有一种方法可以使用摆动/自动? 一个可以做到这一点的图书馆也将提供巨大的帮助。 问题答案: 正如您所指出的,问题是gif