import java.awt.image.BufferedImage; import java.awt.image.BufferedImageOp; import java.awt.image.ConvolveOp; import java.awt.image.Kernel; import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.JFrame; import javax.swing.JPanel; import javax.imageio.ImageIO; import java.io.*; import java.awt.Image; import java.awt.image.BufferedImage; import javax.swing.ImageIcon; public class FlouKernel extends JPanel { public static void main(String[] argv) throws Exception { JFrame frame = new JFrame("Affichage d'image floue"); frame.add(new FlouKernel()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400,400); frame.setLocationRelativeTo(null); frame.setVisible(true); } 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 rends l'image floue Kernel kernel = new Kernel(3, 3, new float[] { 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f }); 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(); } } } |
Cet article Java: Exemple d’image floue avec la classe Kernel est apparu en premier sur .