summaryrefslogtreecommitdiffstats
path: root/awt/javax/imageio/ImageWriteParam.java
diff options
context:
space:
mode:
Diffstat (limited to 'awt/javax/imageio/ImageWriteParam.java')
-rw-r--r--awt/javax/imageio/ImageWriteParam.java664
1 files changed, 0 insertions, 664 deletions
diff --git a/awt/javax/imageio/ImageWriteParam.java b/awt/javax/imageio/ImageWriteParam.java
deleted file mode 100644
index d661889..0000000
--- a/awt/javax/imageio/ImageWriteParam.java
+++ /dev/null
@@ -1,664 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * @author Rustem V. Rafikov
- * @version $Revision: 1.3 $
- */
-
-package javax.imageio;
-
-import java.util.Locale;
-import java.awt.*;
-
-/**
- * The ImageWriteParam class provides information to an ImageWriter about how an
- * image is to be encoded.
- *
- * @since Android 1.0
- */
-public class ImageWriteParam extends IIOParam {
-
- /**
- * The Constant MODE_DISABLED indicates that stream is not tiled,
- * progressive, or compressed.
- */
- public static final int MODE_DISABLED = 0;
-
- /**
- * The Constant MODE_DEFAULT indicates that the stream will be tiled,
- * progressive, or compressed according to the plug-in's default.
- */
- public static final int MODE_DEFAULT = 1;
-
- /**
- * The Constant MODE_EXPLICIT indicates that the stream will be tiled,
- * progressive, or compressed according to current settings which are
- * defined by set methods.
- */
- public static final int MODE_EXPLICIT = 2;
-
- /**
- * The Constant MODE_COPY_FROM_METADATA indicates that the stream will be
- * tiled, progressive, or compressed according to stream or image metadata.
- */
- public static final int MODE_COPY_FROM_METADATA = 3;
-
- /**
- * Whether the ImageWriter can write tiles.
- */
- protected boolean canWriteTiles = false;
-
- /**
- * The tiling mode.
- */
- protected int tilingMode = MODE_COPY_FROM_METADATA;
-
- /**
- * The preferred tile sizes.
- */
- protected Dimension[] preferredTileSizes = null;
-
- /**
- * The tiling set.
- */
- protected boolean tilingSet = false;
-
- /**
- * The tile width.
- */
- protected int tileWidth = 0;
-
- /**
- * The tile height.
- */
- protected int tileHeight = 0;
-
- /**
- * Whether the ImageWriter can offset tiles.
- */
- protected boolean canOffsetTiles = false;
-
- /**
- * The tile grid x offset.
- */
- protected int tileGridXOffset = 0;
-
- /**
- * The tile grid y offset.
- */
- protected int tileGridYOffset = 0;
-
- /**
- * Whether the ImageWriter can write in progressive mode.
- */
- protected boolean canWriteProgressive = false;
-
- /**
- * The progressive mode.
- */
- protected int progressiveMode = MODE_COPY_FROM_METADATA;
-
- /**
- * Whether the ImageWriter can write in compressed mode.
- */
- protected boolean canWriteCompressed = false;
-
- /**
- * The compression mode.
- */
- protected int compressionMode = MODE_COPY_FROM_METADATA;
-
- /**
- * The compression types.
- */
- protected String[] compressionTypes = null;
-
- /**
- * The compression type.
- */
- protected String compressionType = null;
-
- /**
- * The compression quality.
- */
- protected float compressionQuality = 1.0f;
-
- /**
- * The locale.
- */
- protected Locale locale = null;
-
- /**
- * Instantiates a new ImageWriteParam.
- */
- protected ImageWriteParam() {
- }
-
- /**
- * Instantiates a new ImageWriteParam with the specified Locale.
- *
- * @param locale
- * the Locale.
- */
- public ImageWriteParam(Locale locale) {
- this.locale = locale;
-
- }
-
- /**
- * Gets the mode for writing the stream in a progressive sequence.
- *
- * @return the current progressive mode.
- */
- public int getProgressiveMode() {
- if (canWriteProgressive()) {
- return progressiveMode;
- }
- throw new UnsupportedOperationException("progressive mode is not supported");
- }
-
- /**
- * Returns true if images can be written using increasing quality passes by
- * progressive.
- *
- * @return true if images can be written using increasing quality passes by
- * progressive, false otherwise.
- */
- public boolean canWriteProgressive() {
- return canWriteProgressive;
- }
-
- /**
- * Sets the progressive mode which defines whether the stream contains a
- * progressive sequence of increasing quality during writing. The
- * progressive mode should be one of the following values: MODE_DISABLED,
- * MODE_DEFAULT, or MODE_COPY_FROM_METADATA.
- *
- * @param mode
- * the new progressive mode.
- */
- public void setProgressiveMode(int mode) {
- if (canWriteProgressive()) {
- if (mode < MODE_DISABLED || mode > MODE_COPY_FROM_METADATA || mode == MODE_EXPLICIT) {
- throw new IllegalArgumentException("mode is not supported");
- }
- this.progressiveMode = mode;
- }
- throw new UnsupportedOperationException("progressive mode is not supported");
- }
-
- /**
- * Returns true if the writer can use tiles with non zero grid offsets while
- * writing.
- *
- * @return true, if the writer can use tiles with non zero grid offsets
- * while writing, false otherwise.
- */
- public boolean canOffsetTiles() {
- return canOffsetTiles;
- }
-
- /**
- * Returns true if this writer can write images with compression.
- *
- * @return true, if this writer can write images with compression, false
- * otherwise.
- */
- public boolean canWriteCompressed() {
- return canWriteCompressed;
- }
-
- /**
- * Returns true if the writer can write tiles.
- *
- * @return true, if the writer can write tiles, false otherwise.
- */
- public boolean canWriteTiles() {
- return canWriteTiles;
- }
-
- /**
- * Check write compressed.
- */
- private final void checkWriteCompressed() {
- if (!canWriteCompressed()) {
- throw new UnsupportedOperationException("Compression not supported.");
- }
- }
-
- /**
- * Check compression mode.
- */
- private final void checkCompressionMode() {
- if (getCompressionMode() != MODE_EXPLICIT) {
- throw new IllegalStateException("Compression mode not MODE_EXPLICIT!");
- }
- }
-
- /**
- * Check compression type.
- */
- private final void checkCompressionType() {
- if (getCompressionTypes() != null && getCompressionType() == null) {
- throw new IllegalStateException("No compression type set!");
- }
- }
-
- /**
- * Gets the compression mode.
- *
- * @return the compression mode if it's supported.
- */
- public int getCompressionMode() {
- checkWriteCompressed();
- return compressionMode;
- }
-
- /**
- * Gets the an array of supported compression types.
- *
- * @return the an array of supported compression types.
- */
- public String[] getCompressionTypes() {
- checkWriteCompressed();
- if (compressionTypes != null) {
- return compressionTypes.clone();
- }
- return null;
- }
-
- /**
- * Gets the current compression type, or returns null.
- *
- * @return the current compression type, or returns null if it is not set.
- */
- public String getCompressionType() {
- checkWriteCompressed();
- checkCompressionMode();
- return compressionType;
- }
-
- /**
- * Gets a bit rate which represents an estimate of the number of bits of
- * output data for each bit of input image data with the specified quality.
- *
- * @param quality
- * the quality.
- * @return an estimate of the bit rate, or -1.0F if there is no estimate.
- */
- public float getBitRate(float quality) {
- checkWriteCompressed();
- checkCompressionMode();
- checkCompressionType();
- if (quality < 0 || quality > 1) {
- throw new IllegalArgumentException("Quality out-of-bounds!");
- }
- return -1.0f;
- }
-
- /**
- * Gets the compression quality.
- *
- * @return the compression quality.
- */
- public float getCompressionQuality() {
- checkWriteCompressed();
- checkCompressionMode();
- checkCompressionType();
- return compressionQuality;
- }
-
- /**
- * Gets the array of compression quality descriptions.
- *
- * @return the string array of compression quality descriptions.
- */
- public String[] getCompressionQualityDescriptions() {
- checkWriteCompressed();
- checkCompressionMode();
- checkCompressionType();
- return null;
- }
-
- /**
- * Gets an array of floats which describes compression quality levels.
- *
- * @return the array of compression quality values.
- */
- public float[] getCompressionQualityValues() {
- checkWriteCompressed();
- checkCompressionMode();
- checkCompressionType();
- return null;
- }
-
- /**
- * Gets the locale of this ImageWriteParam.
- *
- * @return the locale of this ImageWriteParam.
- */
- public Locale getLocale() {
- return locale;
- }
-
- /**
- * Gets the current compression type using the current Locale.
- *
- * @return the current compression type using the current Locale.
- */
- public String getLocalizedCompressionTypeName() {
- checkWriteCompressed();
- checkCompressionMode();
-
- String compressionType = getCompressionType();
- if (compressionType == null) {
- throw new IllegalStateException("No compression type set!");
- }
- return compressionType;
-
- }
-
- /**
- * Check tiling.
- */
- private final void checkTiling() {
- if (!canWriteTiles()) {
- throw new UnsupportedOperationException("Tiling not supported!");
- }
- }
-
- /**
- * Check tiling mode.
- */
- private final void checkTilingMode() {
- if (getTilingMode() != MODE_EXPLICIT) {
- throw new IllegalStateException("Tiling mode not MODE_EXPLICIT!");
- }
- }
-
- /**
- * Check tiling params.
- */
- private final void checkTilingParams() {
- if (!tilingSet) {
- throw new IllegalStateException("Tiling parameters not set!");
- }
- }
-
- /**
- * Gets the tiling mode if tiling is supported.
- *
- * @return the tiling mode if tiling is supported.
- */
- public int getTilingMode() {
- checkTiling();
- return tilingMode;
- }
-
- /**
- * Gets an array of Dimensions giving the sizes of the tiles as they are
- * encoded in the output file or stream.
- *
- * @return the preferred tile sizes.
- */
- public Dimension[] getPreferredTileSizes() {
- checkTiling();
- if (preferredTileSizes == null) {
- return null;
- }
-
- Dimension[] retval = new Dimension[preferredTileSizes.length];
- for (int i = 0; i < preferredTileSizes.length; i++) {
- retval[i] = new Dimension(retval[i]);
- }
- return retval;
- }
-
- /**
- * Gets the tile grid X offset for encoding.
- *
- * @return the tile grid X offset for encoding.
- */
- public int getTileGridXOffset() {
- checkTiling();
- checkTilingMode();
- checkTilingParams();
- return tileGridXOffset;
- }
-
- /**
- * Gets the tile grid Y offset for encoding.
- *
- * @return the tile grid Y offset for encoding.
- */
- public int getTileGridYOffset() {
- checkTiling();
- checkTilingMode();
- checkTilingParams();
- return tileGridYOffset;
- }
-
- /**
- * Gets the tile height in an image as it is written to the output stream.
- *
- * @return the tile height in an image as it is written to the output
- * stream.
- */
- public int getTileHeight() {
- checkTiling();
- checkTilingMode();
- checkTilingParams();
- return tileHeight;
- }
-
- /**
- * Gets the tile width in an image as it is written to the output stream.
- *
- * @return the tile width in an image as it is written to the output stream.
- */
- public int getTileWidth() {
- checkTiling();
- checkTilingMode();
- checkTilingParams();
- return tileWidth;
- }
-
- /**
- * Checks if the current compression type has lossless compression or not.
- *
- * @return true, if the current compression type has lossless compression,
- * false otherwise.
- */
- public boolean isCompressionLossless() {
- checkWriteCompressed();
- checkCompressionMode();
- checkCompressionType();
- return true;
- }
-
- /**
- * Removes current compression type.
- */
- public void unsetCompression() {
- checkWriteCompressed();
- checkCompressionMode();
- compressionType = null;
- compressionQuality = 1;
- }
-
- /**
- * Sets the compression mode to the specified value. The specified mode can
- * be one of the predefined constants: MODE_DEFAULT, MODE_DISABLED,
- * MODE_EXPLICIT, or MODE_COPY_FROM_METADATA.
- *
- * @param mode
- * the new compression mode to be set.
- */
- public void setCompressionMode(int mode) {
- checkWriteCompressed();
- switch (mode) {
- case MODE_EXPLICIT: {
- compressionMode = mode;
- unsetCompression();
- break;
- }
- case MODE_COPY_FROM_METADATA:
- case MODE_DISABLED:
- case MODE_DEFAULT: {
- compressionMode = mode;
- break;
- }
- default: {
- throw new IllegalArgumentException("Illegal value for mode!");
- }
- }
- }
-
- /**
- * Sets the compression quality. The value should be between 0 and 1.
- *
- * @param quality
- * the new compression quality, float value between 0 and 1.
- */
- public void setCompressionQuality(float quality) {
- checkWriteCompressed();
- checkCompressionMode();
- checkCompressionType();
- if (quality < 0 || quality > 1) {
- throw new IllegalArgumentException("Quality out-of-bounds!");
- }
- compressionQuality = quality;
- }
-
- /**
- * Sets the compression type. The specified string should be one of the
- * values returned by getCompressionTypes method.
- *
- * @param compressionType
- * the new compression type.
- */
- public void setCompressionType(String compressionType) {
- checkWriteCompressed();
- checkCompressionMode();
-
- if (compressionType == null) { // Don't check anything
- this.compressionType = null;
- } else {
- String[] compressionTypes = getCompressionTypes();
- if (compressionTypes == null) {
- throw new UnsupportedOperationException("No settable compression types");
- }
-
- for (int i = 0; i < compressionTypes.length; i++) {
- if (compressionTypes[i].equals(compressionType)) {
- this.compressionType = compressionType;
- return;
- }
- }
-
- // Compression type is not in the list.
- throw new IllegalArgumentException("Unknown compression type!");
- }
- }
-
- /**
- * Sets the instruction that tiling should be performed for the image in the
- * output stream with the specified parameters.
- *
- * @param tileWidth
- * the tile's width.
- * @param tileHeight
- * the tile's height.
- * @param tileGridXOffset
- * the tile grid's x offset.
- * @param tileGridYOffset
- * the tile grid's y offset.
- */
- public void setTiling(int tileWidth, int tileHeight, int tileGridXOffset, int tileGridYOffset) {
- checkTiling();
- checkTilingMode();
-
- if (!canOffsetTiles() && (tileGridXOffset != 0 || tileGridYOffset != 0)) {
- throw new UnsupportedOperationException("Can't offset tiles!");
- }
-
- if (tileWidth <= 0 || tileHeight <= 0) {
- throw new IllegalArgumentException("tile dimensions are non-positive!");
- }
-
- Dimension preferredTileSizes[] = getPreferredTileSizes();
- if (preferredTileSizes != null) {
- for (int i = 0; i < preferredTileSizes.length; i += 2) {
- Dimension minSize = preferredTileSizes[i];
- Dimension maxSize = preferredTileSizes[i + 1];
- if (tileWidth < minSize.width || tileWidth > maxSize.width
- || tileHeight < minSize.height || tileHeight > maxSize.height) {
- throw new IllegalArgumentException("Illegal tile size!");
- }
- }
- }
-
- tilingSet = true;
- this.tileWidth = tileWidth;
- this.tileHeight = tileHeight;
- this.tileGridXOffset = tileGridXOffset;
- this.tileGridYOffset = tileGridYOffset;
- }
-
- /**
- * Clears all tiling settings.
- */
- public void unsetTiling() {
- checkTiling();
- checkTilingMode();
-
- tilingSet = false;
- tileWidth = 0;
- tileHeight = 0;
- tileGridXOffset = 0;
- tileGridYOffset = 0;
- }
-
- /**
- * Sets the tiling mode. The specified mode should be one of the following
- * values: MODE_DISABLED, MODE_DEFAULT, MODE_EXPLICIT, or
- * MODE_COPY_FROM_METADATA.
- *
- * @param mode
- * the new tiling mode.
- */
- public void setTilingMode(int mode) {
- checkTiling();
-
- switch (mode) {
- case MODE_EXPLICIT: {
- tilingMode = mode;
- unsetTiling();
- break;
- }
- case MODE_COPY_FROM_METADATA:
- case MODE_DISABLED:
- case MODE_DEFAULT: {
- tilingMode = mode;
- break;
- }
- default: {
- throw new IllegalArgumentException("Illegal value for mode!");
- }
- }
- }
-}