diff options
Diffstat (limited to 'awt/javax/imageio/ImageWriteParam.java')
| -rw-r--r-- | awt/javax/imageio/ImageWriteParam.java | 664 | 
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 d661889b2fcf..000000000000 --- 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!"); -            } -        } -    } -} | 
