JSPCN主页 | JSP空间 | 网站制作 | JSP下载 | JSP论坛 | JSP教程 | 关于JSPCN | 联系我们
JSP虚拟主机,jsp空间,java空间,java虚拟空间,详细请点击进入
做最专业的JSP中文网站 当前位置首页--JAVA技术--JAVA基础  
文章搜索:
关键字 标题
  
JSP中文网内容管理系统(JCMS)
JSP虚拟主机
网络笔记本
网摘,图片,笔记收藏
虚拟服务器

JSPCN文章目录分类
JSP配置[219]JSP基础[136]
中文问题[69]上传问题[27]
JAVABEAN[46]数据库[212]
文件操作[126]图片声音[17]
JSP其他[57]时间相关[16]
JAVAMAIL[72]STRUTS[144]
开发工具[28]教程系列[157]
JSP实例[89]
JAVA基础[421]APPLET[78]
JAVA网络[179]Applica[115]
Servlet[98]XML[163]
J2ME[257]J2EE[374]
考试相关[63]JAVA线程[90]
EJB[261]Swing[26]
Java API[141]声音图片[28]
异常处理[33]JAVA实例[290]
JAVA类[139]SUN[89]
Hibernate[6]JMX[8]
Spring[34]
本版推荐文章 
本版热点文章 
相关文章链接 
 
A Java Advanced Imaging program
作者:未知     文章来源:www.jspcn.net
访问次数:301次     加入时间:2005年01月19日
// 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.
}

}

 
Copyright © 2002-2005 JSPCN.net. All rights reserved.
JSP中文网    备案序号:蜀ICP备05001583号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号