Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/arranger/jarl/test/FilterTest.java


1   package com.arranger.jarl.test;
2   
3   import junit.framework.TestCase;
4   
5   import java.awt.*;
6   import java.awt.image.*;
7   import java.io.File;
8   
9   import com.arranger.jarl.util.IOUtil;
10  import com.jhlabs.image.*;
11  
12  /**
13   * FilterTest created on Mar 20, 2003
14   */
15  public class FilterTest extends TestCase {
16  
17      protected static final String source = "src/com/arranger/jarl/test/filterTest.jpg";
18      protected static final String dest = "src/com/arranger/jarl/test/filterTest_dest.jpg";
19  
20      public void testFilter() throws Exception {
21          //get image source
22          Image image = getSourceImage();
23  
24          //get image filter
25          ImageFilter imageFilter = getImageFilter();
26  
27          //filter image and wait for result
28          image = filterImage(image, imageFilter);
29          save(image);
30      }
31  
32      protected void save(Image image) {
33          IOUtil.save(image, new File(dest));
34      }
35  
36      protected ImageFilter getImageFilter() {
37          //ImageFilter imageFilter = getTwirlFilter();
38          //ImageFilter imageFilter = getSphereFilter();
39          //ImageFilter imageFilter = getMarbleFilter();
40          //ImageFilter imageFilter = getCrystalizeFilter();
41          ImageFilter imageFilter = getLookupFilter();
42          return imageFilter;
43      }
44  
45      protected Image filterImage(Image image, ImageFilter imageFilter) throws InterruptedException {
46          FilteredImageSource filteredImageSource = new FilteredImageSource(image.getSource(), imageFilter);
47          image = Toolkit.getDefaultToolkit().createImage(filteredImageSource);
48          MyObserver myObserver = new MyObserver();
49          image.getWidth(myObserver);
50          while (!myObserver.m_done) {
51              Thread.sleep(100);
52          }
53          return image;
54      }
55  
56      protected Image getSourceImage() throws Exception {
57          return Toolkit.getDefaultToolkit().getImage(source);
58      }
59  
60      protected ImageFilter getTwirlFilter() {
61          TwirlFilter twirlFilter = new TwirlFilter();
62          twirlFilter.setAngle((float)Math.toRadians(1080));
63          return twirlFilter;
64      }
65  
66      protected ImageFilter getSphereFilter() {
67          SphereFilter sphereFilter = new SphereFilter();
68          sphereFilter.setRefractionIndex(9.6f);
69          return sphereFilter;
70      }
71  
72      protected ImageFilter getMarbleFilter() {
73          MarbleFilter marbleFilter = new MarbleFilter();
74          marbleFilter.setXScale(21f);
75          marbleFilter.setYScale(24f);
76          marbleFilter.setTurbulence(3);
77          return marbleFilter;
78      }
79  
80      protected ImageFilter getCrystalizeFilter() {
81          CrystalizeFilter crystalizeFilter = new CrystalizeFilter();
82          //crystalizeFilter.setScale(34f);
83          //crystalizeFilter.setStretch(.5f);
84          //crystalizeFilter.setAngle((float)Math.toRadians(30));
85          return crystalizeFilter;
86      }
87  
88      protected ImageFilter getLookupFilter() {
89          LookupFilter lookupFilter = new LookupFilter();
90          ArrayColormap arrayColormap = new ArrayColormap();
91          arrayColormap.setColorRange(0, 10, 0x0000FF00);
92          arrayColormap.setColorInterpolated(3, 1, 5, 0x00000000);
93          arrayColormap.setColorInterpolated(6, 4, 10, 0x00AA00AA);
94          lookupFilter.setColormap(arrayColormap);
95          return lookupFilter;
96      }
97  
98      protected static class MyObserver implements ImageObserver {
99  
100         protected boolean m_done = false;
101 
102         public boolean imageUpdate(Image img, int infoflags,
103                                    int x, int y, int width, int height) {
104             m_done = true;
105             return false;
106         }
107     }
108 }