01: /*
02: * $RCSfile: BMPEncodeParam.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:55:29 $
10: * $State: Exp $
11: */
12: package com.sun.media.jai.codec;
13:
14: /**
15: * An instance of <code>ImageEncodeParam</code> for encoding images in
16: * the BMP format.
17: *
18: * <p> This class allows for the specification of various parameters
19: * while encoding (writing) a BMP format image file. By default, the
20: * version used is VERSION_3, no compression is used, and the data layout
21: * is bottom_up, such that the pixels are stored in bottom-up order, the
22: * first scanline being stored last.
23: *
24: * <p><b> This class is not a committed part of the JAI API. It may
25: * be removed or changed in future releases of JAI.</b>
26: *
27: */
28: public class BMPEncodeParam implements ImageEncodeParam {
29:
30: // version constants
31:
32: /** Constant for BMP version 2. */
33: public static final int VERSION_2 = 0;
34:
35: /** Constant for BMP version 3. */
36: public static final int VERSION_3 = 1;
37:
38: /** Constant for BMP version 4. */
39: public static final int VERSION_4 = 2;
40:
41: // Default values
42: private int version = VERSION_3;
43: private boolean compressed = false;
44: private boolean topDown = false;
45:
46: /**
47: * Constructs an BMPEncodeParam object with default values for parameters.
48: */
49: public BMPEncodeParam() {
50: }
51:
52: /** Sets the BMP version to be used. */
53: public void setVersion(int versionNumber) {
54: checkVersion(versionNumber);
55: this .version = versionNumber;
56: }
57:
58: /** Returns the BMP version to be used. */
59: public int getVersion() {
60: return version;
61: }
62:
63: /** If set, the data will be written out compressed, if possible. */
64: public void setCompressed(boolean compressed) {
65: this .compressed = compressed;
66: }
67:
68: /**
69: * Returns the value of the parameter <code>compressed</code>.
70: */
71: public boolean isCompressed() {
72: return compressed;
73: }
74:
75: /**
76: * If set, the data will be written out in a top-down manner, the first
77: * scanline being written first.
78: */
79: public void setTopDown(boolean topDown) {
80: this .topDown = topDown;
81: }
82:
83: /**
84: * Returns the value of the <code>topDown</code> parameter.
85: */
86: public boolean isTopDown() {
87: return topDown;
88: }
89:
90: // Method to check whether we can handle the given version.
91: private void checkVersion(int versionNumber) {
92: if (!(versionNumber == VERSION_2 || versionNumber == VERSION_3 || versionNumber == VERSION_4)) {
93: throw new RuntimeException(JaiI18N
94: .getString("BMPEncodeParam0"));
95: }
96: }
97:
98: }
|