import java.awt.geom.AffineTransform; import java.awt.image.AffineTransformOp; import java.awt.image.BufferedImage; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.imageio.ImageIO; import java.io.File; public class TranslateImage extends JFrame { private TranslateImage(String monImage)throws Exception { // Création d'un fenêtre de type JFrame setTitle("Manipulation des image"); setSize(400, 400); setVisible(true); JButton btn=new JButton("Cliquez ici pour déplacer l'image"); /* * Evénement de bouton clique * pour convertir l'image * */ btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { // Lancer la conversion de l'image AffineTransform transformer = new AffineTransform(); transformer.translate(2, 1); AffineTransformOp op = new AffineTransformOp(transformer, AffineTransformOp.TYPE_BILINEAR); image = op.filter(image, null); repaint(); } }); add(btn,java.awt.BorderLayout.NORTH); // utiliser une image comme fond d'ércran du JFrame Image img = ImageIO.read(new File(monImage)); 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(); } public static void main(String[] argv) throws Exception { new TranslateImage("c:/image.gif"); } private BufferedImage image; } |
Cet article Java: Convertir une image avec ‘AffineTransform’ est apparu en premier sur .