{filelink=10268}
import java.awt.geom.AffineTransform;
import java.awt.image.*;
import java.awt.*;
import java.awt.BorderLayout;
import javax.swing.*;
import java.io.File;
import javax.imageio.ImageIO;
import java.awt.event.*;
public class ImageScaling
{
private BufferedImage image;
JFrame frm;
/*
* @auteur sakoba adams
* Modification de l'aspect visuel d'une
* image en java.
* NOTE: si l'image ne s'affiche pas au
* lancement, redimensionner la fenêtre
* pour invoquer l'événement repaint de JFrame
*/
public ImageScaling(String monImage)throws Exception
{
// Création d'un fenêtre de type JFrame
frm=new JFrame("Manipulation des image");
frm.setSize(400, 400);
frm.setVisible(true);
// Création de menu qui servira à modifier l'aspect de l'image
JMenu menu=new JMenu("Fichier");
JMenuItem editImage=new JMenuItem("Reproportionner cette image");
menu.add(editImage);
// Ajouter l'option de menu qui permet la modification de l'image
editImage.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
// Ces lignes redessinent l'image par échelle
AffineTransform transformer = new AffineTransform();
transformer.scale(1, 2);
AffineTransformOp op = new AffineTransformOp(transformer,
AffineTransformOp.TYPE_BILINEAR);
image = op.filter(image, null);
frm.repaint();
}
}
);
JMenuBar bar=new JMenuBar();
bar.add(menu);
frm.setJMenuBar(bar);
// Ces lignes ajoutent une image comme fond "Background" d'un JFrame
Image img = ImageIO.read(new File(monImage));
image = new BufferedImage(img.getWidth(null), img.getHeight(null),
BufferedImage.TYPE_INT_RGB);
image.getGraphics().drawImage(img, 0, 0, null);
frm.add(new JComponent()
{
public void paintComponent(Graphics g)
{
if (image != null) g.drawImage(image, 0, 0, null);
}
});
frm.repaint();
}
public static void main(String[] argv) throws Exception {
// Lancement de l'application avec l'image comme paramètre
new ImageScaling("c:/image.gif");
}
}