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

📄 basicimage.java

📁 计算机图象处理的java源代码,可以实现图象的放大缩小等基本功能
💻 JAVA
字号:
package image;
import   com.sun.image.codec.jpeg.JPEGCodec; 
import   com.sun.image.codec.jpeg.JPEGImageEncoder; 
import   java.awt.Graphics; 
import   java.awt.Image; 
import java.awt.Toolkit;
import   java.awt.image.BufferedImage; 
import java.awt.image.ImageObserver;
import java.awt.image.MemoryImageSource;
import java.awt.image.PixelGrabber;
import java.awt.image.Raster;
import   java.io.*; 

import   javax.imageio.ImageIO; 
import javax.swing.ImageIcon;
public abstract class BasicImage {
	
	   int   wideth=0; 
       int   height=0; 
       String fileName="";
       Image image=null;
       File file=null;
       BufferedImage   bufferedimage=null;
       int [] imageData=null;
       Image imageProcessed=null;
	public BasicImage() {
		super();
		// TODO 自动生成构造函数存根
	}
	public BasicImage(String fileName) { //初始化处理,得到图象的 宽度、高度、image以及imageData等基本信息
		 System.out.println("-------------- BasicImage(String fileName)");
		this.fileName=fileName.trim();
		 file=new File(fileName);
        try 
            { 
                    bufferedimage   =   ImageIO.read(file); //把wideth和height替换成想要的尺寸就可以了 
                    wideth   =   bufferedimage.getWidth(null); 
                    height   =   bufferedimage.getHeight(null);
                    System.out.println("-----------------wideth of image is:"+wideth);
                    System.out.println("-----------------height of image is:"+height);
                    
                  
                
                	Toolkit toolkit=Toolkit.getDefaultToolkit();
                	image = toolkit.getImage(this.fileName); //生成image
                	
                	imageData=this.getdata();
                //	System.out.println("----------------imageData"+imageData);
                	
                	
            } 
            catch(Exception   exception) 
            { 
                    System.out.println(exception); 
                    exception.printStackTrace();
                    
            } 
		// TODO 自动生成构造函数存根
	}
	
	 public int [] getdata() {//得到待处理图象的象素数据
		 System.out.println("--------------getdata()");
         int[] pixels = new int[wideth * height];
         PixelGrabber pg = new PixelGrabber(image, 0, 0, wideth, height, pixels, 0, wideth);
         try {
             pg.grabPixels();
         } catch (InterruptedException e) {
             System.err.println("interrupted waiting for pixels!");
            // return;
         }
    /*
         for(int i=0;i<height;i++)
         {
      
         	for(int j=0;j<wideth;j++)
         	{
         		System.out.println("celldata:"+pixels[i*height+wideth]);
         	}
         	
         }
      */
        return  pixels;
  }       
	 public Image createImage(int [] nData )   //根据经过处理的 图象数据 创建图象,但只是在内存中创建
     {
		 System.out.println("--------------createImage");
        Toolkit kit = Toolkit.getDefaultToolkit();
       Image  image = kit.createImage(new MemoryImageSource(wideth, height,
                nData, 0, wideth));
       imageProcessed= image;
       return imageProcessed;
     }
	 
	 
	 public void saveImage(String saveImageName) //保存已经经过处理的图象
	 //例如 "d:\\005.bmp"
	 {
		 System.out.println("--------------saveImage");
		 int  nWidth=this.wideth;
	  int   nHeight=this.height;
		 
		 BufferedImage   bufferedimage1   =   new   BufferedImage(nWidth,   nHeight,   1); 
	      // bufferedimage1.getGraphics().drawImage(this.createImage(this.imageData),   0,   0,   nWidth,   nHeight,   null);
		 bufferedimage1.getGraphics().drawImage(imageProcessed,   0,   0,   nWidth,   nHeight,   null);
	       try{
	       FileOutputStream   fileoutputstream   =   new   FileOutputStream( saveImageName.trim()); 
	       JPEGImageEncoder   jpegimageencoder   =   JPEGCodec.createJPEGEncoder(fileoutputstream); 
	       // BMPCodec.
	       jpegimageencoder.encode(bufferedimage1); 
	    
	       fileoutputstream.close(); 
	       } catch(Exception e)
	       {  e.printStackTrace();}
	 }
	public abstract Image imageProcess();
	
	
	public abstract void saveImageAfterProcess();
	
	public abstract void showImageAfterProcess();
	
	public static void main(String[] args) {
		// TODO 自动生成方法存根
		//BasicImage zyy=new BasicImage();
		

	}

}

⌨️ 快捷键说明

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