⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imageprocess.java

📁 windows画图板.类似于windows自带的画图程序!
💻 JAVA
字号:
import java.awt.*;
import java.awt.color.ColorSpace;
import java.awt.event.*;
import java.awt.geom.AffineTransform;
import java.awt.image.*;
public class ImageProcess implements ActionListener{
	public void actionPerformed(ActionEvent e){
		if(e.getActionCommand().equals("加亮(L)")){
			float a = 1.1f;
            float b = 20.0f;
            RescaleOp op = new RescaleOp(a, b, null);
            filter(op);
           
		}
		else if(e.getActionCommand().equals("锐化(R)")){
			float[] elements = { 0.0f, -1.0f, 0.0f, -1.0f, 5.f, -1.0f, 0.0f, -1.0f, 0.0f };
            convolve(elements);
             convolve(elements);	
		}
		else if(e.getActionCommand().equals("边缘(E)")){
			float[] elements = { 0.0f, -1.0f, 0.0f, -1.0f, 4.f, -1.0f, 0.0f, -1.0f, 0.0f };
            convolve(elements);
		}
		else if(e.getActionCommand().equals("模糊(M)")){
			float weight = 1.0f / 9.0f;
            float[] elements = new float[9];
            for (int i = 0; i < 9; i++)
               elements[i] = weight;
            convolve(elements);
		}
		else if(e.getActionCommand().equals("反色(O)")){
			 short[] negative = new short[256 * 1];
             for (int i = 0; i < 256; i++)
             negative[i] = (short) (255 - i);
             ShortLookupTable table = new ShortLookupTable(0, negative);
             LookupOp op = new LookupOp(table, null);
             filter(op);
		}
		else{
			MenuEventClass.about.setVisible(false);
			if(MenuEventClass.revolve.equals("水平翻转")){
			if (image == null) return;
            AffineTransform transform = AffineTransform.getRotateInstance(
                   Math.toRadians(0), -image.getWidth() / 2, -image.getHeight() / 2);
             AffineTransformOp op = new AffineTransformOp(transform,
                   AffineTransformOp.TYPE_BICUBIC);
             filter(op);
			}
			else if(MenuEventClass.revolve.equals("垂直翻转")){
				if (image == null) return;
	            AffineTransform transform = AffineTransform.getRotateInstance(
	                   Math.toRadians(180), image.getWidth() / 2, image.getHeight() / 2);
	             AffineTransformOp op = new AffineTransformOp(transform,
	                   AffineTransformOp.TYPE_BICUBIC);
	             filter(op);
				}
			else if(MenuEventClass.revolve.equals("90度")){
				if (image == null) return;
	            AffineTransform transform = AffineTransform.getRotateInstance(
	                   Math.toRadians(90), image.getWidth() / 2, image.getHeight() / 2);
	             AffineTransformOp op = new AffineTransformOp(transform,
	                   AffineTransformOp.TYPE_BICUBIC);
	             filter(op);
				}
			else if(MenuEventClass.revolve.equals("180度")){
				if (image == null) return;
	            AffineTransform transform = AffineTransform.getRotateInstance(
	                   Math.toRadians(180), image.getWidth() / 2, image.getHeight() / 2);
	             AffineTransformOp op = new AffineTransformOp(transform,
	                   AffineTransformOp.TYPE_BICUBIC);
	             filter(op);
				}
			else if(MenuEventClass.revolve.equals("270度")){
				if (image == null) return;
	            AffineTransform transform = AffineTransform.getRotateInstance(
	                   Math.toRadians(270), image.getWidth() / 2, image.getHeight() / 2);
	             AffineTransformOp op = new AffineTransformOp(transform,
	                   AffineTransformOp.TYPE_BICUBIC);
	             filter(op);
				}
			}
		}
	public  void niuQu(float shuiping,float chuiZi){
		if (image == null) return;
        AffineTransform transform = AffineTransform.getShearInstance( image.getWidth() /shuiping, image.getHeight() / chuiZi);
         AffineTransformOp op = new AffineTransformOp(transform,
               AffineTransformOp.TYPE_BICUBIC);
         filter(op);
	}
	 private void convolve(float[] elements)
	    {
	       Kernel kernel = new Kernel(3, 3, elements);
	       ConvolveOp op = new ConvolveOp(kernel);
	       filter(op);
	    }
	 public void gray(){
		 ColorConvertOp cco=new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY),null); 
		 image = cco.filter(image, null);
		 DrawingBoard.picture=image;
	       Graphics g = null;
         Panel.drawCanvas.paintComponent(g);
	 }
	 
	 private void filter(BufferedImageOp op)
	   {
	       if (image == null) return;
	       image = op.filter(image, null);
	       DrawingBoard.picture=image;
	       Graphics g = null;
           Panel.drawCanvas.paintComponent(g);
	    }
	 protected static BufferedImage image;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -