public static void main(String[] args) throws Exception{ File file = new File("c:/abc.gif"); //读入文件 Image src = ImageIO.read(file); //构造Image对象 int width=45; // 压缩后的宽 int height = 45; // 压缩后的高 BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); image.getGraphics().drawImage(src,0,0,width,height,null); //绘制缩小后的图 FileOutputStream out=new FileOutputStream(new File("c:/out.gif")); //输出到文件流 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); encoder.encode(image); out.close(); }
* 分解GIF: * GifDecoder d = new GifDecoder(); * d.read("sample.gif"); * int n = d.getFrameCount(); * for (int i = 0; i < n; i++) { * BufferedImage frame = d.getFrame(i); // frame i * int t = d.getDelay(i); // display duration of frame in milliseconds * // do something with frame * } 缩小图片,然后在合成 * 合成GIF: * AnimatedGifEncoder e = new AnimatedGifEncoder(); * e.start(outputFileName); * e.setDelay(1000); // 1 frame per sec * e.addFrame(image1); * e.addFrame(image2); * e.finish();
Image src = ImageIO.read(file); //构造Image对象
int width=45; // 压缩后的宽
int height = 45; // 压缩后的高
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
image.getGraphics().drawImage(src,0,0,width,height,null); //绘制缩小后的图
FileOutputStream out=new FileOutputStream(new File("c:/out.gif")); //输出到文件流
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
}
* GifDecoder d = new GifDecoder();
* d.read("sample.gif");
* int n = d.getFrameCount();
* for (int i = 0; i < n; i++) {
* BufferedImage frame = d.getFrame(i); // frame i
* int t = d.getDelay(i); // display duration of frame in milliseconds
* // do something with frame
* }
缩小图片,然后在合成
* 合成GIF:
* AnimatedGifEncoder e = new AnimatedGifEncoder();
* e.start(outputFileName);
* e.setDelay(1000); // 1 frame per sec
* e.addFrame(image1);
* e.addFrame(image2);
* e.finish();