import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.ConvolveOp;
import java.awt.image.Kernel;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
public class ConvolveIt extends JFrame {
Image image = getImage("java2s.jpg");
private static final float[] SHARP = { 0.0f, -1.0f, 0.0f, -1.0f, 5.0f,
-1.0f, 0.0f, -1.0f, 0.0f };
BufferedImage bufferedImage;
ConvolveOp convolveOp;
public Image getImage(String imageFile) {
ImageIcon icon = new ImageIcon(imageFile);
return icon.getImage();
}
public ConvolveIt() {
int width = image.getWidth(this);
int height = image.getHeight(this);
bufferedImage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics2D big = bufferedImage.createGraphics();
AffineTransform affineTransform = new AffineTransform();
big.drawImage(image, affineTransform, this);
Kernel kernel = new Kernel(3, 3, SHARP);
convolveOp = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);
}
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
if (bufferedImage != null) {
g2d.drawImage(bufferedImage, convolveOp, 10, 30);
}
}
public static void main(String args[]) {
Frame f = new ConvolveIt();
f.setTitle("ConvolveIt");
f.setSize(300, 250);
f.show();
}
}
|