1
2
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
22
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 }