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);