View Javadoc

1   // University of California, Santa Cruz, USA and
2   // CERN, Geneva, Switzerland, Copyright (c) 2000
3   package org.freehep.graphicsio.test;
4   
5   import java.awt.BasicStroke;
6   import java.awt.Color;
7   import java.awt.Graphics;
8   import java.awt.Image;
9   import java.awt.MediaTracker;
10  import java.awt.Stroke;
11  import java.awt.geom.AffineTransform;
12  import java.awt.image.BufferedImage;
13  import java.awt.image.BufferedImageOp;
14  import java.awt.image.ConvolveOp;
15  import java.awt.image.Kernel;
16  
17  import org.freehep.graphics2d.VectorGraphics;
18  import org.freehep.util.images.ImageHandler;
19  
20  /**
21   * @author Charles Loomis
22   * @version $Id: TestImage2D.java 9336 2006-11-15 20:23:12Z duns $
23   */
24  public class TestImage2D extends TestingPanel {
25  
26      static Stroke stroke = new BasicStroke(5.f, BasicStroke.CAP_ROUND,
27              BasicStroke.JOIN_ROUND);
28  
29      private Image image;
30      private BufferedImage image1, image2;
31  
32      public TestImage2D(String[] args) throws Exception {
33          super(args);
34          setName("Images2D");
35  
36          MediaTracker t = new MediaTracker(this);
37          image = ImageHandler.getImage("images/transparent-image.gif",
38                  TestImage2D.class);
39          t.addImage(image, 0);
40          try {
41              t.waitForAll();
42          } catch (InterruptedException e) {
43              e.printStackTrace();
44          }
45          
46          image1 = new BufferedImage(image.getWidth(this), image.getHeight(this),
47                  BufferedImage.TYPE_INT_RGB);
48          image1.createGraphics().drawImage(image, 0, 0, this);
49          
50          image2 = new BufferedImage(image.getWidth(this), image
51                  .getHeight(this), BufferedImage.TYPE_INT_RGB);
52          image2.createGraphics().drawImage(image, 0, 0, this);
53      }
54  
55      public void paintComponent(Graphics g) {
56  
57          VectorGraphics vg = VectorGraphics.create(g);
58          AffineTransform transform = vg.getTransform();
59  
60          vg.setColor(Color.white);
61          vg.fillRect(0, 0, getWidth(), getHeight());
62  
63          vg.drawImage(image1, new AffineTransform(), this);
64  
65          vg.shear(0.2, 0.2);
66          AffineTransform t = new AffineTransform();
67          t.rotate(0.5, -40, 0);
68          t.translate(250, -50);
69          t.shear(-0.3, 0);
70          vg.drawImage(image, t, this);
71  
72          float[] SHARPEN3x3 = new float[] { 0.f, -1.f, 0.f, -1.f, 5.0f, -1.f,
73                  0.f, -1.f, 0.f };
74          Kernel kernel = new Kernel(3, 3, SHARPEN3x3);
75          BufferedImageOp cop = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP,
76                  null);
77          vg.drawImage(image2, cop, 300, -80);
78  
79          vg.setTransform(transform);
80      }
81  
82      public static void main(String[] args) throws Exception {
83          new TestImage2D(args).runTest();
84      }
85  }