·您的位置: 首页 » 资源教程 » 编程开发 » JAVA、JSP » A JAVA ADVANCED IMAGING PROGRAM

A JAVA ADVANCED IMAGING PROGRAM

类别: JSP教程  评论数:0 总得分:0
// This program has two parts , it can invert a image, and compare with the original one in a frame.You need download and install Java Advanced Imaging before you use it!!!

// compile:
javac "###1&2.java"
//run:
java "###2" "image file name.jpg" <return>


// now, here is the code:

//part one:

import java.awt.GridLayout;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
import java.awt.image.RenderedImage;

import javax.media.jai.PlanarImage;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

/**
* This class represents a Panel which contains two instances of
* DisplayJAIWithPixelInfo.
* The scrolling bars of both images are synchronized so scrolling one image
* will automatically scroll the other.
*/
public class DisplayTwoSynchronizedImages extends JPanel
implements AdjustmentListener
{
/** The DisplayJAIWithPixelInfo for the first image. */
protected DisplayJAIWithPixelInfo dj1;
/** The DisplayJAIWithPixelInfo for the second image. */
protected DisplayJAIWithPixelInfo dj2;
/** The JScrollPane which will contain the first of the images */
protected JScrollPane jsp1;
/** The JScrollPane which will contain the second of the images */
protected JScrollPane jsp2;

/**
* Constructs an instance of this class, setting the components? layout,
* creating two instances of DisplayJAI for the two images and creating/
* registering event handlers for the scroll bars.
* @param im1 the first image (left side)
* @param im2 the second image (right side)
*/
public DisplayTwoSynchronizedImages(PlanarImage im1,PlanarImage im2)
{
super();
setLayout(new GridLayout(1,2));
dj1 = new DisplayJAIWithPixelInfo(im1); // Instances of DisplayJAI for the
dj2 = new DisplayJAIWithPixelInfo(im2); // two images
jsp1 = new JScrollPane(dj1); // JScrollPanes for the both
jsp2 = new JScrollPane(dj2); // instances of DisplayJAI
add(jsp1);
add(jsp2);
// Retrieve the scroll bars of the images and registers adjustment
// listeners to them.
// Horizontal scroll bar of the first image.
jsp1.getHorizontalScrollBar().addAdjustmentListener(this);
// Vertical scroll bar of the first image.
jsp1.getVerticalScrollBar().addAdjustmentListener(this);
// Horizontal scroll bar of the second image.
jsp2.getHorizontalScrollBar().addAdjustmentListener(this);
// Vertical scroll bar of the second image.
jsp2.getVerticalScrollBar().addAdjustmentListener(this);
}

/**
* This method changes the first image to be displayed.
* @param newImage the new first image.
*/
public void setImage1(PlanarImage newimage)
{
dj1.set(newimage);
repaint();
}

/**
* This method changes the second image to be displayed.
* @param newImage the new second image.
*/
public void setImage2(PlanarImage newimage)
{
dj2.set(newimage);
repaint();
}

/**
* This method returns the first image.
* @return the first image.
*/
public RenderedImage getImage1()
{
return dj1.getSource();
}

/**
* This method returns the second image.
* @return the second image.
*/
public RenderedImage getImage2()
{
return dj2.getSource();
}

/**
* This method returns the first DisplayJAI component.
* @return the first DisplayJAI component.
*/
public DisplayJAIWithPixelInfo getDisplayJAIComponent1()
{
return dj1;
}

/**
* This method returns the second DisplayJAI component.
* @return the second DisplayJAI component.
*/
public DisplayJAIWithPixelInfo getDisplayJAIComponent2()
{
return dj2;
}

/**
* This method will be called when any of the scroll bars of the instances of
* DisplayJAI are changed. The method will adjust the scroll bar of the other
* DisplayJAI as needed.
* @param e the AdjustmentEvent that ocurred (meaning that one of the scroll
* bars position has changed.
*/
public void adjustmentValueChanged(AdjustmentEvent e)
{
// If the horizontal bar of the first image was changed...
if (e.getSource() == jsp1.getHorizontalScrollBar())
{
// We change the position of the horizontal bar of the second image.
jsp2.getHorizontalScrollBar().setValue(e.getValue());
}
// If the vertical bar of the first image was changed...
if (e.getSource() == jsp1.getVerticalScrollBar())
{
// We change the position of the vertical bar of the second image.
jsp2.getVerticalScrollBar().setValue(e.getValue());
}
// If the horizontal bar of the second image was changed...
if (e.getSource() == jsp2.getHorizontalScrollBar())
{
// We change the position of the horizontal bar of the first image.
jsp1.getHorizontalScrollBar().setValue(e.getValue());
}
// If the vertical bar of the second image was changed...
if (e.getSource() == jsp2.getVerticalScrollBar())
{
// We change the position of the vertical bar of the first image.
jsp1.getVerticalScrollBar().setValue(e.getValue());
}
}

}




//Ok, now is the main function , part two:

import javax.media.jai.JAI;
import javax.media.jai.PlanarImage;
import javax.swing.JFrame;


/**
* This class demonstrates the use of the invert operator.
*/
public class Invert
{
/**
* The application entry point.
* @param args the command line arguments.
*/
public static void main(String[] args)
{
// We need one argument: the image filename.
if (args.length != 1)
{
System.err.println("Usage: java operators.Invert image");
System.exit(0);
}
// Read the image.
PlanarImage input = JAI.create("fileload", args[0]);
// Invert the image.
PlanarImage output = JAI.create("invert", input);
// Create a JFrame for displaying the results.
JFrame frame = new JFrame();
frame.setTitle("Invert image "+args[0]);
// Add to the JFrame?s ContentPane an instance of DisplayTwoSynchronized-
// Images, which will contain the original and processed image.
frame.getContentPane().add(new DisplayTwoSynchronizedImages(input,output));
// Set the closing operation so the application is finished.
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack(); // adjust the frame size using preferred dimensions.
frame.setVisible(true); // show the frame.
}

}
-= 资 源 教 程 =-
文 章 搜 索
关键词:
类型:
范围:
纯粹空间 softpure.com
Copyright © 2006-2008 暖阳制作 版权所有
QQ: 15242663 (拒绝闲聊)  Email: faisun@sina.com
 纯粹空间 - 韩国酷站|酷站欣赏|教程大全|资源下载|免费博客|美女壁纸|设计素材|技术论坛   Valid XHTML 1.0 Transitional
百度搜索 谷歌搜索 Alexa搜索 | 粤ICP备19116064号-1