01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17:
18: /* $Id: ImageEncoder.java 496556 2007-01-16 00:59:48Z cam $ */
19:
20: package org.apache.xmlgraphics.image.codec.util;
21:
22: import java.awt.image.ColorModel;
23: import java.awt.image.Raster;
24: import java.awt.image.RenderedImage;
25: import java.io.IOException;
26: import java.io.OutputStream;
27:
28: /**
29: * An interface describing objects that transform a BufferedImage or
30: * Raster into an OutputStream.
31: *
32: * <p><b> This interface is not a committed part of the JAI API. It may
33: * be removed or changed in future releases of JAI.</b>
34: */
35: public interface ImageEncoder {
36:
37: /**
38: * Returns the current parameters as an instance of the
39: * ImageEncodeParam interface. Concrete implementations of this
40: * interface will return corresponding concrete implementations of
41: * the ImageEncodeParam interface. For example, a JPEGImageEncoder
42: * will return an instance of JPEGEncodeParam.
43: */
44: ImageEncodeParam getParam();
45:
46: /**
47: * Sets the current parameters to an instance of the
48: * ImageEncodeParam interface. Concrete implementations
49: * of ImageEncoder may throw a RuntimeException if the
50: * params argument is not an instance of the appropriate
51: * subclass or subinterface. For example, a JPEGImageEncoder
52: * will expect param to be an instance of JPEGEncodeParam.
53: */
54: void setParam(ImageEncodeParam param);
55:
56: /** Returns the OutputStream associated with this ImageEncoder. */
57: OutputStream getOutputStream();
58:
59: /**
60: * Encodes a Raster with a given ColorModel and writes the output
61: * to the OutputStream associated with this ImageEncoder.
62: */
63: void encode(Raster ras, ColorModel cm) throws IOException;
64:
65: /**
66: * Encodes a RenderedImage and writes the output to the
67: * OutputStream associated with this ImageEncoder.
68: */
69: void encode(RenderedImage im) throws IOException;
70: }
|