Java: Exemple d’image taillée en pointe avec la classe Kernel

Author:

 classe, set, stack, swing, awt, JPanel, JFrame
Download

import java.awt.image.*;
import java.io.*;
import javax.swing.*;
import javax.imageio.*;
import java.awt.*;
 
public class ImagePointillee extends JPanel {
 
	  	  public void paint(Graphics g) 
  {
    try 
    	{
 
     BufferedImage monImage=null;
 
        monImage = ImageIO.read(new File("c:/image.gif"));
      BufferedImage filteredImage = new BufferedImage(monImage.getWidth(null), monImage
          .getHeight(null), BufferedImage.TYPE_BYTE_GRAY);
 
      Graphics gs = filteredImage.getGraphics();
      gs.drawImage(monImage, 400, 200, null);
 
      // Le kernel qui taille l'image en pointe
          Kernel kernel = new Kernel(3, 3, new float[] { -1, -1, -1, -1, 9, -1, -1,
        -1, -1 });
 
      BufferedImageOp imageFloue = new ConvolveOp(kernel);
      monImage = imageFloue.filter(monImage, null);
      gs.dispose();
 
      Graphics2D g2d = (Graphics2D) g;
      g2d.drawImage(monImage, null, 3, 3);
    } catch (Exception ex) 
    {
      ex.printStackTrace();
    }
  }
 
  public static void main(String[] argv) throws Exception {
    JFrame frame = new JFrame("Affichage d'image taillée en pointe");
    frame.add(new ImagePointillee());
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(400,400);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
  }
}