📄 dispalypicture.java
字号:
import java .awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.swing.*;
import javax.swing.JPanel.*;
public class DispalyPicture extends JPanel
{
private Image img;
public int w;
public int h;
float data = 1.0f/9.0f;
float[] elements = new float[9];
public DispalyPicture()
{
img = getToolkit().getImage(ClassLoader.getSystemResource("boy.gif"));
MediaTracker mt = new MediaTracker(this);
mt.addImage(img,0);
try{
mt.waitForAll(); //判断图片是否加载完成。
}catch(Exception e){
e.printStackTrace();
}
w = img.getWidth(this);
h = img.getHeight(this);
this.setSize(w+60,h);
for(int i=0;i<9;i++)
{
elements[i] = data;
}
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
BufferedImage bi = new BufferedImage(w,h,BufferedImage.TYPE_INT_ARGB);
//创建图象对象大小的图象缓冲区对象。
Graphics2D big = bi.createGraphics();
big.drawImage(img,0,0,this); //将图像绘制到缓冲区。
big.drawRect(w/4,h/4,w/2,h/2);//在图像缓冲区中绘制在矩形。
BufferedImageOp biop = null;
AffineTransform at = new AffineTransform();
BufferedImage bimg = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
Kernel kernel = new Kernel(3,3,elements);//使用矩阵创建kernel对象。
ConvolveOp cop = new ConvolveOp(kernel,ConvolveOp.EDGE_NO_OP,null);//实现图像的模糊处理
cop.filter(bi,bimg);//过滤处理后图像并存于bimg。
biop = new AffineTransformOp(at,AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
Graphics2D g2d = (Graphics2D)g;
g2d.drawImage(bi,30,0,null);//显示图像,即显示图像缓冲区内容。
}
public JPanel getPanel()
{
return this;
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -