Java: cisailler ou couper une image

Author:

 classe, fichier, list, date, list, set, swing, awt, événement, JFrame
{filelink=10269}

import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import javax.swing.*;
import java.awt.*;
import java.io.File;
import javax.imageio.ImageIO;
import java.awt.event.*;
	/*
	 * @auteur sakoba adams
	 * Modification de l'aspect visuel d'une
	 * image en java en appliquant l'effet 
	 * cisaillement.
	 */
public class ImageCisaillement extends JFrame
{
	private BufferedImage image;
	private ImageCisaillement()throws Exception
	{
		super("Manipulation des image");
		setSize(400, 400);
		setVisible(true);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		add(new JLabel("Pour commencer cliquez sur l'option "
			+"sélectionner une image dans le menu fichier"
			+"Ensuite sur l'option cisailler l'image dans le même menu"));
		// Dessiner le menu de JFrame
		JMenu menu=new JMenu("Fichier");
        JMenuItem editImage=new JMenuItem("Cisailler l'image sélectionnée");
        JMenuItem chooseImage=new JMenuItem("Ouvrir une image...");
        menu.add(chooseImage);
        menu.add(editImage);
        JMenuBar barMenu=new JMenuBar();
        barMenu.add(menu);
        setJMenuBar(barMenu);
        /*
         * Ajouter un événement clique au
         * menu "ouvrir une image"
         * à l'aide d'une classe interne anonyme
         */
        chooseImage.addActionListener(new ActionListener()
        {
        	public void actionPerformed(ActionEvent evt)
        	{
        		JFileChooser choix=new JFileChooser();
        		int op=choix.showOpenDialog(null);
        		if(op==JFileChooser.APPROVE_OPTION)
        		{
        			paintFrame(choix.getSelectedFile().getPath());
        		}
        	}
        });
        /*
         * Ajouter un événement clique au
         * menu "Cisailler l'image sélectionnée"
         * à l'aide d'une classe interne anonyme
         */        
                editImage.addActionListener(new ActionListener()
        {
        	public void actionPerformed(ActionEvent evt)
        	{
               cisailler();
        	}
        		
        }		
        );

		
	}
	// Ajouter une image au fond de JFrame
	private void paintFrame(String fichierImage)
	{
		      		try{
        	
		Image img = ImageIO.read(new File(fichierImage));
        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);
        	 	}
	}
	// Cisailler l'image
	private void cisailler()
	{
    AffineTransform transformer = new AffineTransform();
    transformer.shear(2, 3);

    AffineTransformOp op = new AffineTransformOp(transformer,
        AffineTransformOp.TYPE_BILINEAR);
    image = op.filter(image, null);
    repaint();
	}
  public static void main(String[] argv) throws Exception 
  	{
  		JFrame frame=new ImageCisaillement();

  }
}



A Voir sur le même Sujet:

  • découper image + android example
  • couper en java
  • découper image java exemple
  • découper bufferedimage
  • couper image en java
  • découper une image avec swing
  • graphics c# cisaillement
  • couper une image avec java
  • découper une image java
  • cisaillement image sous java

Leave a Reply

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