我想把一个Image对象保存在电脑里边(gif格式),且不改变源文件(即动态图保存后还是动态图)
这该怎么做呢?这项目,急死了。。。
下面是我找到的保存图片方法,但不知为何动态图保存后,变成静态了,汗,文件大小缩水了N倍,只是原动态图的一个截面(相当于剪切那种,晕死了)。。。
- Java code
Image image3=image2.getImage(); BufferedImage bufImg = new BufferedImage(image3.getWidth(null), image3.getHeight(null), BufferedImage.TYPE_INT_RGB); bufImg.getGraphics().drawImage(image3, 0, 0, null); FileOutputStream fos; try { fos = new FileOutputStream( "D://javaChat/01.jpg"); com.sun.image.codec.jpeg.JPEGImageEncoder encoder = com.sun.image.codec.jpeg.JPEGCodec.createJPEGEncoder(fos); encoder.encode(bufImg); fos.close(); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace();} catch(Exception ett){ ett.printStackTrace(); }
------解决方案--------------------------------------------------------
gif-->jpeg???
jpeg永远不可能
------解决方案--------------------------------------------------------
- Java code
ImageIO.write(b, "GIF", new FileOutputStream("c:\\a.gif"));
------解决方案--------------------------------------------------------
BufferedImage bufImg = new BufferedImage(image3.getWidth(null), image3.getHeight(null), BufferedImage.TYPE_INT_RGB);
bufImg.getGraphics().drawImage(image3, 0, 0, null);
ImageIO.write(bufImg, "GIF", new FileOutputStream("c:\\a.gif"));