Java: Transformer une image avec AffineTransform

Author:

 set, swing, awt, JFrame
Download

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
 
import javax.swing.JFrame;
 
public class Transform extends Canvas {
 
  public Transform() {
    setBackground(Color.white);
  }
 
  public void paint(Graphics g) {
    try {
      Graphics2D g2D;
      g2D = (Graphics2D) g;
 
      g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
 
      String fileName = "c:/image.gif";
      Image img = getToolkit().getImage(fileName);
 
      g2D.drawImage(img, new AffineTransform(), this);
      AffineTransform aTran = new AffineTransform();
      aTran.translate(200.0f, 0.0f);
      g2D.transform(aTran);
 
      AffineTransform imageSpaceTran = new AffineTransform();
 
      imageSpaceTran.setToShear(0.1f, 0.1f);
 
      g2D.drawImage(img, imageSpaceTran, this);
 
      aTran.translate(50.0f, 0.0f);
      g2D.transform(aTran);
      imageSpaceTran.scale(1.5f, 1.5f);
 
      g2D.drawImage(img, imageSpaceTran, this);
 
    } catch (Exception ex) 
    {
    	System.out.println (ex);
 
    }
  }
 
  public static void main(String s[]) 
  {
 
    JFrame frame1 = new JFrame("Utilisation des Images 2D");
    frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
    frame1.getContentPane().add("Center", new Transform());
    frame1.pack();
    frame1.setSize(new Dimension(750, 370));
    frame1.setVisible(true);
  }
 
}