View Javadoc

1   package com.insanityengine.ghia.util;
2   
3   import java.awt.*;
4   import java.awt.image.*;
5   import java.awt.event.*;
6   
7   import javax.swing.*;
8   
9   /***
10   *
11   * <P>
12   * </P>
13   *
14   * @author BrianHammond
15   *
16   * $Header: /usr/local/cvsroot/ghia/src/java/com/insanityengine/ghia/util/ComponentUtil.java,v 1.5 2005/03/19 17:50:02 brian Exp $
17   *
18   */
19  
20  public class ComponentUtil {
21  
22  	/***
23  	 * 
24  	 * 
25  	 * 
26  	 */
27  	public final static void main( String argv[] ) {
28  		if ( 0x00 == argv.length ) {
29  			final JFrame frame = new JFrame( "Tada" );
30  			JButton butt = new JButton( "Click here..." );
31  			butt.addActionListener( 
32  				new ActionListener() {
33  					public void actionPerformed( ActionEvent e ) {
34  						saveAsJpeg( frame, "tada.jpg" );
35  						System.exit( 0 );
36  					}
37  				}
38  			);
39  			frame.getContentPane().add( butt );
40  			frame.pack();
41  			frame.setVisible( true );
42  		} else {
43  		}
44  	}
45  
46  	/***
47  	 *
48  	 * Save a component to a jpeg
49  	 *
50  	 * @param theImage to save 
51  	 * @param observer to use (total pain)
52  	 * @param filename to save to
53  	 *
54  	 * @return return success/fail
55  	 *
56  	 */
57  	final public static boolean saveAsJpeg( Image theImage, ImageObserver observer, String filename ) {
58  		boolean succeeded = false;
59  		BufferedImage image = (
60  			new BufferedImage(
61  				theImage.getWidth( observer ),
62  				theImage.getHeight( observer ),
63  				BufferedImage.TYPE_INT_RGB
64  			)
65  		);
66  		Graphics2D g2 = image.createGraphics();
67  		g2.drawImage( theImage, 0, 0, observer );
68  		return saveAsJpeg( image, filename );
69  	}
70  
71  	/***
72  	 *
73  	 * Save a component to a jpeg
74  	 *
75  	 * Thanks to http://www.jguru.com/faq/view.jsp?EID=242020 for the refresher!
76  	 *
77  	 * @param component to save 
78  	 * @param filename to save to
79  	 *
80  	 * @return return success/fail
81  	 *
82  	 */
83  	final public static boolean saveAsJpeg( Component component, String filename ) {
84  		boolean succeeded = false;
85  		Dimension size = component.getSize();
86  		BufferedImage image = (
87  			new BufferedImage(
88  				size.width, 
89  				size.height,
90  				BufferedImage.TYPE_INT_RGB
91  			)
92  		);
93  		Graphics2D g2 = image.createGraphics();
94  		component.paint( g2 );
95  		return saveAsJpeg( image, filename );
96  	}
97  
98  	/***
99  	 *
100 	 * Save a BufferedImage to a jpeg
101 	 *
102 	 * @param image to save 
103 	 * @param filename to save to
104 	 *
105 	 * @return return success/fail
106 	 *
107 	 */
108 	final public static boolean saveAsJpeg( BufferedImage image, String filename ) {
109 		boolean succeeded = false;
110 		try {
111 			java.io.OutputStream out = new java.io.FileOutputStream( filename );
112 			com.sun.image.codec.jpeg.JPEGImageEncoder encoder = (
113 				com.sun.image.codec.jpeg.JPEGCodec.createJPEGEncoder( out )
114 			);
115 			encoder.encode( image );
116 			out.close();
117 			succeeded = true;
118 		} catch ( Exception e ) {
119 			//System.out.println(e); 
120 		}
121 		return succeeded;
122 	}
123 
124 	
125 	
126 };
127 
128 /***
129  *
130  * $Log: ComponentUtil.java,v $
131  * Revision 1.5  2005/03/19 17:50:02  brian
132  * repackaging
133  *
134  * Revision 1.4  2005/02/17 03:31:13  brian
135  * good stuff???
136  *
137  *
138  */