01: /*
02: * $RCSfile: RawTileEncoder.java,v $
03: *
04: * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
05: *
06: * Use is subject to license terms.
07: *
08: * $Revision: 1.1 $
09: * $Date: 2005/02/11 04:56:58 $
10: * $State: Exp $
11: */package com.sun.media.jai.tilecodec;
12:
13: import java.awt.image.Raster;
14: import java.io.IOException;
15: import java.io.OutputStream;
16: import java.io.ObjectOutputStream;
17: import javax.media.jai.JAI;
18: import javax.media.jai.ParameterListDescriptor;
19: import javax.media.jai.tilecodec.TileCodecParameterList;
20: import javax.media.jai.tilecodec.TileEncoderImpl;
21:
22: /**
23: * A concrete implementation of the <code>TileEncoderImpl</code> class
24: * for the raw tile codec.
25: */
26: public class RawTileEncoder extends TileEncoderImpl {
27:
28: /**
29: * Constructs an <code>RawTileEncoder</code>. Concrete implementations
30: * of <code>TileEncoder</code> may throw an
31: * <code>IllegalArgumentException</code> if the
32: * <code>param</code>'s <code>getParameterListDescriptor()</code> method
33: * does not return the same descriptor as that from the associated
34: * <code>TileCodecDescriptor</code>'s
35: * <code>getParameterListDescriptor</code> method for the "tileEncoder"
36: * registry mode.
37: *
38: * <p> If param is null, then the default parameter list for encoding
39: * as defined by the associated <code>TileCodecDescriptor</code>'s
40: * <code>getDefaultParameters()</code> method will be used for encoding.
41: *
42: * @param output The <code>OutputStream</code> to write encoded data to.
43: * @param param The object containing the tile encoding parameters.
44: * @throws IllegalArgumentException if param is not the appropriate
45: * Class type.
46: * @throws IllegalArgumentException is output is null.
47: */
48: public RawTileEncoder(OutputStream output,
49: TileCodecParameterList param) {
50: super ("raw", output, param);
51: }
52:
53: /**
54: * Encodes a <code>Raster</code> and writes the output
55: * to the <code>OutputStream</code> associated with this
56: * <code>TileEncoder</code>.
57: *
58: * @param ras the <code>Raster</code> to encode.
59: * @throws IOException if an I/O error occurs while writing to the
60: * OutputStream.
61: * @throws IllegalArgumentException if ras is null.
62: */
63: public void encode(Raster ras) throws IOException {
64: if (ras == null)
65: throw new IllegalArgumentException(JaiI18N
66: .getString("TileEncoder1"));
67:
68: ObjectOutputStream oos = new ObjectOutputStream(outputStream);
69:
70: Object object = TileCodecUtils.serializeRaster(ras);
71:
72: oos.writeObject(object);
73: oos.close();
74: }
75: }
|