Digg StumbleUpon LinkedIn YouTube Flickr Facebook Twitter RSS Reset

Java: Inverser une image horizontalement

 list, date, list, set, swing, awt, JPanel, JFrame
{filelink=10273}

 
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.JComponent;
import javax.imageio.ImageIO;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.BorderLayout;
 
	/*
	 *  @auteur sakoba adams
	 *  Inverser une image horizontalement
	 *
	 *
	 */
public class ImageInversion1 extends JFrame implements ActionListener
 {
 
  public ImageInversion1()
  {
  	    // Modification de titre
   		setTitle("Java Manipulation des images");
 		// Arrêter le jvm après la fermeture
 		setDefaultCloseOperation(EXIT_ON_CLOSE);
 		// Définir la taille
		setSize(500, 350);
		// Afficher le JFrame
		setVisible(true);
		// Créer le bouton de sélection de l'image
		btnSelect=new JButton("Sélectionner une image");
		// Créer le bouton de modification de l'image
		btnInversion_hori=new JButton("Cliquez ici pour inverser l'image");
		btnInversion_hori.addActionListener(this);
		btnSelect.addActionListener(this);
		JPanel pnl=new JPanel();
		pnl.add(btnSelect, BorderLayout.WEST);
		pnl.add(btnInversion_hori, BorderLayout.EAST);
		add(pnl,java.awt.BorderLayout.NORTH);				
  }
 
 	public void actionPerformed(ActionEvent evt)
 	{
 		/*
 		 *  Si l'utilisateur clique sur ce bouton 
 		 *  ouvrir la boîte de dialogue de sélection
 		 *  de l'image
 		 */
 		if(evt.getSource()==btnSelect)
 		{
 				JFileChooser choix=new JFileChooser();
        		int op=choix.showOpenDialog(null);
        		if(op==0)
        		{
		      		try{
 
					Image img = ImageIO.read(new File(choix.getSelectedFile().getPath()));
        			image = new BufferedImage(img.getWidth(null), img.getHeight(null),
               	    BufferedImage.TYPE_BYTE_INDEXED);
       				image.getGraphics().drawImage(img, 0, 0, null);
					add(new JComponent()
           			{
              			public void paintComponent(Graphics g)
              			{
                 		if (image != null) g.drawImage(image, 0, 0, null);
             			}
           			});
        			invalidate();  
        			validate();
 
        	 	}catch(Exception err)     		
        	 	{
        	 		JOptionPane.showMessageDialog(null,err);
        	 	}        			
 
        		}
 		}
 		/*
 		 *  Autrement, Si l'utilisateur clique sur ce bouton 
 		 *  Inverser l'image horizontalement
 		 *  
 		 */
 		 else if(evt.getSource()==btnInversion_hori)
 		{
    		AffineTransform tx = AffineTransform.getScaleInstance(-1, 1);
    		tx.translate(-image.getWidth(null), 0);
    		AffineTransformOp op = new AffineTransformOp(tx,
        	AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
    		image = op.filter(image, null);	
   			repaint();		
 		}
 	}
  public static void main(String[] argv) throws Exception 
  {
    new ImageInversion1();
  }
   	JButton btnSelect, btnInversion_hori;
 	private BufferedImage image;
}

A Voir sur le même Sujet:

  • java imageIO lire image
  • jabva inversé une image
  • méthode pour retourner une image java
  • utiliser url de jfilechooser
  • java inverser image
  • jfilechooser image java exemple
  • renverser image java
  • java tableaux image
  • inverser un mort java
  • télécharger la bibliothèque jfilechooser