import java.awt.geom.AffineTransform; import java.awt.image.AffineTransformOp; import java.awt.image.BufferedImage; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.File; import javax.imageio.ImageIO; /* * @auteur sakoba adams * faire retourner une image * */ public class FlipImage extends JFrame implements ActionListener { JButton btnSelect, btnBascul; private BufferedImage image; public FlipImage() { // Configuration de JFrame setTitle("Manipulation des image"); setLayout(new BorderLayout()); setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(500, 350); setVisible(true); btnSelect=new JButton("Sélectionner une image"); btnBascul=new JButton("Cliquez ici pour inverser l'image"); btnBascul.addActionListener(this); btnSelect.addActionListener(this); JPanel pnl=new JPanel(); pnl.add(btnSelect); pnl.add(btnBascul); add(pnl,java.awt.BorderLayout.NORTH); } // Ecrire les codes de deux boutons public void actionPerformed(ActionEvent evt) { 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); } } } else if(evt.getSource()==btnBascul) { AffineTransform tx = AffineTransform.getScaleInstance(1, -1); tx.translate(0, -image.getHeight(null)); AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR); image = op.filter(image, null); repaint(); } } public static void main(String[] argv) throws Exception { new FlipImage(); } } |
Cet article Java: Retourner une image est apparu en premier sur .