📄 picturefilterpanel.java
字号:
package picturefilter;import java.awt.*;import java.awt.image.*;import java.awt.geom.*;import javax.swing.*;import javax.swing.JPanel;/** * <p>Title: PictureFilter</p> * <p>Description: 应用Java 2D API进行图像过滤处理</p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: 中国农业大学计算机系</p> * @author 彭 波 * @version 1.0 */public class PictureFilterPanel extends JPanel { private Image img; public int w; public int h; float[] elements = {0.0f, -1.0f, 0.0f,-1.0f, 4.f, -1.0f,0.0f, -1.0f, 0.0f}; public PictureFilterPanel(){ 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*2,h); } public void paintComponent(Graphics g){ super.paintComponent(g); BufferedImage bi = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB); Graphics2D big = bi.createGraphics(); big.drawImage(img,0,0,this); 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(img, 0, 0, w, h, null); g2d.drawImage(bimg, w, 0, w, h, null);// g2d.drawImage(bimg,biop,0,0);// g2d.drawImage(bimg, 0, 0, null); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -