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();
}
}
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.
|