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