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
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 */