Mega Code Archive

 
Categories / Java by API / Javax Imageio
 

ImageReader

import java.awt.Graphics; import java.awt.Panel; import java.awt.image.BufferedImage; import java.io.FileInputStream; import java.util.Iterator; import javax.imageio.ImageIO; import javax.imageio.ImageReader; import javax.imageio.stream.ImageInputStream; import javax.swing.JFrame; public class Main extends Panel{   private BufferedImage images[];   private int imageIndex = 0;   public Main(String filename) throws Exception{       FileInputStream fin = new FileInputStream(filename);       String suffix = filename.substring(filename.lastIndexOf('.') + 1);       System.out.println("suf " + suffix);       Iterator readers = ImageIO.getImageReadersBySuffix(suffix);       ImageReader imageReader = (ImageReader) readers.next();       ImageInputStream iis = ImageIO.createImageInputStream(fin);       imageReader.setInput(iis, false);       int num = imageReader.getNumImages(true);       images = new BufferedImage[num];       for (int i = 0; i < num; ++i) {         images[i] = imageReader.read(i);       }       fin.close();   }   public void paint(Graphics g) {     if (images == null)       return;     g.drawImage(images[imageIndex], 0, 0, null);     imageIndex = (imageIndex + 1) % images.length;   }   static public void main(String args[]) throws Exception {     JFrame frame = new JFrame("ShowImageIR.java");     Panel panel = new Main(args[0]);     frame.getContentPane().add(panel);     frame.setSize(400, 400);     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     frame.setVisible(true);   } }