📄 panel1.java
字号:
package changeimage;
import java.awt.*;
import java.awt.image.*;
import javax.swing.*;
import java.awt.color.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class Panel1
extends JPanel {
BorderLayout borderLayout1 = new BorderLayout();
BufferedImage image; //定义缓冲图像类的变量,用于显示图像
BufferedImage originalimage; //定义缓冲图像变量,用于备份原始图像
public Panel1() {
try {
jbInit();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
void jbInit() throws Exception {
this.setLayout(borderLayout1);
}
public void showImage(String imagename) {
Image image1 = Toolkit.getDefaultToolkit().getImage(imagename); //调用图像
MediaTracker tracker = new MediaTracker(this);
tracker.addImage(image1, 0);
try {
tracker.waitForID(0);
}
catch (InterruptedException e) {}
image = new BufferedImage(image1.getWidth(null),
image1.getHeight(null),
BufferedImage.TYPE_INT_RGB); //创建缓冲图像
Graphics2D g2 = image.createGraphics();
g2.drawImage(image1, 0, 0, null); //绘制图像
originalimage = image;
}
public void reset() {
image = originalimage;
repaint();
}
private void filter(BufferedImageOp op) {
BufferedImage filterImage = new BufferedImage(image.getWidth(),
image.getHeight(),
image.getType()); //创建缓冲区图像
op.filter(image, filterImage);
image = filterImage;
repaint();
}
public void imageToGray() {
ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_GRAY); //创建色彩空间对象
ColorConvertOp op = new ColorConvertOp(cs, null); //创建颜色转换过滤器
filter(op);
}
public void sharpImage() { //图像锐化
float data[] = {
-1.0f, -1.0f, -1.0f,
-1.0f, 9.0f, -1.0f,
-1.0f, -1.0f, -1.0f};
Kernel kernel = new Kernel(3, 3, data); //创建卷积核对象
ConvolveOp op = new ConvolveOp(kernel); //创建卷积过滤器实例
filter(op);
}
public void blurImage() { //图像模糊化
float data[] = {
1.0f / 9.0f, 1.0f / 9.0f, 1.0f / 9.0f,
1.0f / 9.0f, 1.0f / 9.0f, 1.0f / 9.0f,
1.0f / 9.0f, 1.0f / 9.0f, 1.0f / 9.0f};
Kernel kernel = new Kernel(3, 3, data); //创建卷积核对象
ConvolveOp op = new ConvolveOp(kernel); //创建卷积过滤器实例
filter(op);
}
public void edgeImage() { //图像边缘变换
float data[] = {
0.0f, -1.0f, 0.0f,
-1.0f, 4.0f, -1.0f,
0.0f, -1.0f, 0.0f};
Kernel kernel = new Kernel(3, 3, data); //创建卷积核对象
ConvolveOp op = new ConvolveOp(kernel); //创建卷积过滤器实例
filter(op);
}
protected void paintComponent(Graphics g) { //重载paintComponent方法
/**@todo Override this javax.swing.JComponent method*/
super.paintComponent(g);
if (image != null) {
g.drawImage(image, 0, 0, null);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -