📄 displaypicturepanel.java
字号:
package displaypicture;import java.awt.*;import java.awt.geom.*;import java.awt.image.*;import javax.swing.*;import javax.swing.JPanel;/** * <p>Title: DisplayPicture</p> * <p>Description: 应用Java 2D API显示图像</p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: 北京师范大学计算机系</p> * @author 彭 波 * @version 1.0 */public class DisplayPicturePanel extends JPanel { private Image img; public int w; public int h;/* float[] data = { 0.0625f,0.125f,0.0625f, 0.125f,0.125f,0.125f, 0.0625f,0.125f,0.0625f }; */ float data = 1.0f/9.0f; float[] elements = new float[9]; public DisplayPicturePanel(){ img = getToolkit().getImage(ClassLoader.getSystemResource("boy.gif")); MediaTracker mt = new MediaTracker(this); //加载图片 mt.addImage(img,0); try{ //判断图片是否完全加载 mt.waitForAll(); }catch(Exception err){ err.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); ConvolveOp cop = new ConvolveOp(kernel,ConvolveOp.EDGE_NO_OP,null); cop.filter(bi,bimg); biop = new AffineTransformOp( at,AffineTransformOp.TYPE_NEAREST_NEIGHBOR); Graphics2D g2d = (Graphics2D)g; g2d.drawImage(bimg, 30, 0, null); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -