
{filelink=10270}
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;
}