001: /***************************************************************
002: * This file is part of the [fleXive](R) project.
003: *
004: * Copyright (c) 1999-2008
005: * UCS - unique computing solutions gmbh (http://www.ucs.at)
006: * All rights reserved
007: *
008: * The [fleXive](R) project is free software; you can redistribute
009: * it and/or modify it under the terms of the GNU General Public
010: * License as published by the Free Software Foundation;
011: * either version 2 of the License, or (at your option) any
012: * later version.
013: *
014: * The GNU General Public License can be found at
015: * http://www.gnu.org/copyleft/gpl.html.
016: * A copy is found in the textfile GPL.txt and important notices to the
017: * license from the author are found in LICENSE.txt distributed with
018: * these libraries.
019: *
020: * This library is distributed in the hope that it will be useful,
021: * but WITHOUT ANY WARRANTY; without even the implied warranty of
022: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
023: * GNU General Public License for more details.
024: *
025: * For further information about UCS - unique computing solutions gmbh,
026: * please see the company website: http://www.ucs.at
027: *
028: * For further information about [fleXive](R), please see the
029: * project website: http://www.flexive.org
030: *
031: *
032: * This copyright notice MUST APPEAR in all copies of the file!
033: ***************************************************************/package com.flexive.shared.media;
034:
035: import java.awt.color.ICC_Profile;
036:
037: /**
038: * Metadata for images
039: *
040: * @author Markus Plesser (markus.plesser@flexive.com), UCS - unique computing solutions gmbh (http://www.ucs.at)
041: * @version $Rev
042: */
043: public abstract class FxImageMetadata extends FxMetadata {
044:
045: /**
046: * Get the image width
047: *
048: * @return image width
049: */
050: public abstract int getWidth();
051:
052: /**
053: * Get the image height
054: *
055: * @return image height
056: */
057: public abstract int getHeight();
058:
059: /**
060: * Get the format (eg "JPEG")
061: *
062: * @return format
063: */
064: public abstract String getFormat();
065:
066: /**
067: * Get a more descriptive name of the format (eg "JPEG (Joint Photographic Experts Group) Format")
068: *
069: * @return long format
070: */
071: public abstract String getFormatDescription();
072:
073: /**
074: * Get the compression algorithm used (eg "JPEG")
075: *
076: * @return compression algorithm used
077: */
078: public abstract String getCompressionAlgorithm();
079:
080: /**
081: * Get the X-Resolution in DPI
082: *
083: * @return X-Resolution in DPI
084: */
085: public abstract double getXResolution();
086:
087: /**
088: * Get the Y-Resolution in DPI
089: *
090: * @return Y-Resolution in DPI
091: */
092: public abstract double getYResolution();
093:
094: /**
095: * Get the used color type (eg "RGB")
096: *
097: * @return used color type
098: */
099: public abstract String getColorType();
100:
101: /**
102: * Does the image use its own color palette?
103: *
104: * @return use own color palette?
105: */
106: public abstract boolean usePalette();
107:
108: /**
109: * Get the bits per pixel used (eg "24")
110: *
111: * @return bits per pixel used
112: */
113: public abstract int getBitsPerPixel();
114:
115: /**
116: * Is this image progressive scan?
117: *
118: * @return progressive scan?
119: */
120: public abstract boolean isProgressive();
121:
122: /**
123: * Does the image use a transparent background?
124: *
125: * @return transparency?
126: */
127: public abstract boolean isTransparent();
128:
129: /**
130: * Is an ICC profile attached to this image?
131: *
132: * @return ICC profile attached?
133: */
134: public abstract boolean hasICC_Profile();
135:
136: /**
137: * Get the ICC profile if one is attached, else <code>null</code>
138: *
139: * @return ICC profile if attached
140: */
141: public abstract ICC_Profile getICC_Profile();
142: }
|