Listing 4: Applying the "sharpen" filter.


Listing-ul RasterConvolveOp.java

import java.awt.*;
import java.awt.image.*;

class FilterRaster extends Frame{

Image IMG=null;
//the Image object used for obtain a BufferedImage object
BufferedImage BI=null;
//the BufferedImage object from witch the raster will be extracted

        //the matrix  for "sharpen" filter
        float[] matrix={
                       0.0f,-1.0f,0.0f,
                      -1.0f,5.0f,-1.0f,
                       0.0f,-1.0f,0.0f
                       };

    public FilterRaster(String title)
           {
          super(title);
           }

    void init()
           {       
           setLayout(null);
           setSize(240,200);  
           setVisible(true);
           }           
           
    void Filter()
           { 
           //loading the image
           Toolkit tk=Toolkit.getDefaultToolkit();
           IMG=tk.getImage("C:\\JEditor\\x\\raptor.jpg");
       
           MediaTracker mt = new MediaTracker(this);
           mt.addImage(IMG,1);
           try{
                mt.waitForAll();
               }catch (InterruptedException e)
                      {System.out.println(e.getMessage()); };
         
           //getting the Image dimensions 
           int W=IMG.getWidth(this);
           int H=IMG.getHeight(this);
           
           //creating the BufferedImage
           BI=new BufferedImage(W,H,BufferedImage.TYPE_INT_RGB);
           }
            
public void paint(Graphics g)
       {     
       Graphics2D g2D = BI.createGraphics();
       g2D.drawImage(IMG,0,0,this);       

       Graphics2D g2=(Graphics2D)g;              

     //obtain the raster
      Raster R=BI.getData();
         
      WritableRaster Q=null;   
      try{
         //apply the filter to the raster
         Kernel kernel=new Kernel(3,3,matrix);
         ConvolveOp COp=new ConvolveOp(kernel,ConvolveOp.EDGE_NO_OP,null);
         Q=COp.createCompatibleDestRaster(R);
         COp.filter(R,Q);
      }catch(IllegalArgumentException e)
           {System.out.println(e.getMessage());}       
      
      //recreating the BufferedImage from the filtered raster
      BufferedImage BIR=new BufferedImage(BI.getColorModel(),Q,false,null);    
      
       g2.drawImage(BIR,null,30,30);
       }                 
  }

public class RasterConvolveOp{
       public static void main(String[] args)
              {
              FilterRaster t=new FilterRaster("Raptor");
              t.Filter();
              t.init();
              }
}              

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.