在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));
其中images
是String[]
个网址。
至于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而不将其写入文件但保留其动画?
答案 0 :(得分:1)
如果您只想将gif存储在内存中,而不是将它显示在java程序中。您可以将收到的数据写入ByteArrayOutputStream而不是FileOutputStream
,然后获取生成的字节数组,并在以后将其写入FileOutputStream
。
如果您想要显示动画gif,可能需要查看this post中的最佳答案,尽管答案的第一条评论似乎与您的问题类似。