?? 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 + -