将动画GIF图像存储在Java程序中

时间:2015-12-17 23:08:31

标签: java image animation gif

在Java程序中,您可以在BufferedImage中存储.png,.jpg等图像。我不认为它适用于动画gif图像,因为它似乎失去了它的动画。

目前我得到的正常图像如下:

BufferedImage image = ImageIO.read(new URL(images.get(x)));
String type = images.get(x).substring(images.get(x).length() - 3, images.get(x).length());
ImageIO.write(image, type, new File(title + "/" + filename));

其中imagesString[]个网址。

至于gif,我是通过以下方式获得的:

byte[] b = new byte[1];
URL url = new URL(images.get(x));
URLConnection urlConnection = url.openConnection();
urlConnection.connect();
DataInputStream di = new DataInputStream(urlConnection.getInputStream());

FileOutputStream fo = new FileOutputStream(title + "/" + filename);
while (-1 != di.read(b, 0, 1) && downloading)           
    fo.write(b, 0, 1);
di.close();
fo.close();

但是我想将它们存储在程序中并将它们写入另一个文件。如何存储GIF而不将其写入文件但保留其动画?

1 个答案:

答案 0 :(得分:1)

如果您只想将gif存储在内存中,而不是将它显示在java程序中。您可以将收到的数据写入ByteArrayOutputStream而不是FileOutputStream,然后获取生成的字节数组,并在以后将其写入FileOutputStream

如果您想要显示动画gif,可能需要查看this post中的最佳答案,尽管答案的第一条评论似乎与您的问题类似。