1 package com.insanityengine.ghia.pixels;
2
3 import java.awt.*;
4 import java.awt.image.*;
5
6 import java.net.URL;
7
8 /***
9 *
10 * <P>
11 * Facility to create ImageSkin's from filename, url, etc
12 * </P>
13 *
14 * @author BrianHammond
15 *
16 * $Header: /usr/local/cvsroot/ghia/src/java/com/insanityengine/ghia/pixels/Imago.java,v 1.2 2005/03/19 17:50:02 brian Exp $
17 *
18 */
19
20 public class Imago {
21
22 /***
23 *
24 * Constructor
25 *
26 * @param component to use (can this be weaker?)
27 *
28 */
29 public static final void setComponent( Component component ) {
30 Imago.observer = Imago.component = component;
31 tracker = new MediaTracker( component );
32 }
33
34 /***
35 *
36 * Skin an image given a filename
37 *
38 * @param filename of the image
39 * @param relative toggle pwd or not
40 *
41 * @return an ImageSkin
42 *
43 */
44 public static final ImageSkin skinImage( String filename, boolean relative ) {
45 try {
46 java.io.File file = new java.io.File( "." );
47 return skinImage(
48 "file:" + file.getCanonicalPath() + file.separator +
49 filename
50 );
51 } catch ( Exception e ) {
52 }
53 return null;
54 }
55
56 /***
57 *
58 * Skin an image given an href
59 *
60 * @param filename of the image
61 *
62 * @return an ImageSkin
63 *
64 */
65 public static final ImageSkin skinImage( String href ) {
66 ImageSkin skin = null;
67
68 System.out.println( "Imago::skinImage " + href );
69
70 try {
71 Image image = Toolkit.getDefaultToolkit().getImage( new URL( href ) );
72
73 tracker.addImage( image, 0 );
74 try {
75 tracker.waitForID( 0 );
76 skin = new ImageSkin( image, observer );
77 } catch ( Exception e ) {
78 e.printStackTrace();
79 }
80
81 } catch ( Exception fe ) {
82 fe.printStackTrace();
83 }
84
85 System.out.println( "Imago::skinImage: " + skin);
86
87 return skin;
88 }
89
90
91
92 private static Component component = null;
93 private static ImageObserver observer = null;
94 private static MediaTracker tracker = null;
95
96 };
97
98 /***
99 *
100 * $Log: Imago.java,v $
101 * Revision 1.2 2005/03/19 17:50:02 brian
102 * repackaging
103 *
104 * Revision 1.1 2004/09/02 13:17:16 brian
105 * the big reorg
106 *
107 * Revision 1.5 2004/09/01 01:10:42 brian
108 * fix class level javadoc placement
109 *
110 * Revision 1.4 2004/09/01 00:11:06 brian
111 * author, log and header stuff
112 *
113 *
114 */