Page 191 - The Definitive Guide to Building Java Robots
P. 191

Preston_5564C06.fm  Page 172  Friday, September 23, 2005  5:13 AM



                 172    CHAPTER 6  ■  VISION



                        Example 6-5. ImageViewer.java
                        package com.scottpreston.javarobot.chapter6;

                        import java.awt.BorderLayout;
                        import java.awt.image.BufferedImage;
                        import java.io.FileInputStream;

                        import javax.swing.JFrame;

                        import com.sun.image.codec.jpeg.JPEGCodec;
                        import com.sun.image.codec.jpeg.JPEGImageDecoder;

                        public class ImageViewer extends SimpleSwing {

                            // to hold image
                            private BufferedImage currentImage;
                            // canvas for image in case we want to repaint after a process

                            // constructor for buffered image
                            public ImageViewer(BufferedImage bimg) {
                                setTitle("ImageViewer");
                                currentImage = bimg;
                                init();
                            }
                            // constructor for filename
                            public ImageViewer(String fileName) throws Exception{
                                setTitle("ImageViewer - " + fileName);
                                // get file
                                FileInputStream fis = new FileInputStream(fileName);
                                // convert jpec to buffered image
                                JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(fis);
                                currentImage = decoder.decodeAsBufferedImage();
                                init();
                            }

                            public void init() {

                                int w = currentImage.getWidth();
                                int h = currentImage.getHeight();
                                ImagePanel imagePanel =  new ImagePanel(w,h);

                                // set size of the window
                                setSize(w + 8, h+35);
                                // add imagePanel
                                getContentPane().add(imagePanel,BorderLayout.CENTER);
                                // make visible
                                setVisible(true);
   186   187   188   189   190   191   192   193   194   195   196