Java: Reproportionner ou dessiner à l’échelle une image

Author:

 fichier, list, list, set, swing, awt, événement, JFrame
{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");

  }
}

   
    
         

Leave a Reply

Your email address will not be published. Required fields are marked *