1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
   | 	public void setScrambledIcon(ImageIcon icon){
		float[ ] matrice = {
		        0.1f, 0.1f, 0.1f,
		        0.1f, 0.2f, 0.1f,
		        0.1f, 0.1f, 0.1f
		        };
 
		BufferedImage bufferedImage = toBufferedImage(icon.getImage());
		BufferedImageOp op = new ConvolveOp(new Kernel(3,3,matrice));
		BufferedImage nouvelleImage = op.filter(bufferedImage, null);
		setIcon(new ImageIcon(nouvelleImage));
	}
 
	private BufferedImage toBufferedImage(Image image) {
        /** On test si l'image n'est pas déja une instance de BufferedImage */
        if( image instanceof BufferedImage ) {
                /** cool, rien à faire */
                return( (BufferedImage)image );
        }
        /** On s'assure que l'image est complètement chargée */
        image = new ImageIcon(image).getImage();
 
        /** On crée la nouvelle image */
        BufferedImage bufferedImage = new BufferedImage(
                                              image.getWidth(null),
                                              image.getHeight(null),
                                              BufferedImage.TYPE_INT_RGB );
        Graphics g = bufferedImage.createGraphics();
        g.drawImage(image,0,0,null);
        g.dispose();
 
        return( bufferedImage );
 
	} | 
Partager