diff options
Diffstat (limited to 'awt/javax/imageio/ImageReadParam.java')
-rw-r--r-- | awt/javax/imageio/ImageReadParam.java | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/awt/javax/imageio/ImageReadParam.java b/awt/javax/imageio/ImageReadParam.java new file mode 100644 index 000000000000..e67ed7d91edd --- /dev/null +++ b/awt/javax/imageio/ImageReadParam.java @@ -0,0 +1,193 @@ +/* + * 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 Sergey I. Salishev + * @version $Revision: 1.2 $ + */ +package javax.imageio; + +import java.awt.Dimension; +import java.awt.image.BufferedImage; + +/* + * @author Sergey I. Salishev + * @version $Revision: 1.2 $ + */ + +/** + * The ImageReadParam class provides information to the ImageReader about + * how an image is to be decoded. + */ + +public class ImageReadParam extends IIOParam { + + /** + * This flag indicates if this ImageReadParam supports setting the source + * rendering size. + */ + protected boolean canSetSourceRenderSize; + + /** + * The destination BufferedImage. + */ + protected BufferedImage destination; + + /** The destination bands. */ + protected int[] destinationBands; + + /** + * The minimum progressive pass. + */ + protected int minProgressivePass; + + /** + * The number of progressive passes. + */ + protected int numProgressivePasses; + + /** The source render size. */ + protected Dimension sourceRenderSize; + + /** + * Returns true if this ImageReaderParam supports rendering a + * source image at an arbitrary size. + * + * @return true if this ImageReaderParam supports rendering a + * source image at an arbitrary size, false otherwise. + */ + public boolean canSetSourceRenderSize() { + return canSetSourceRenderSize; + } + + /** + * Gets the current destination image as BufferedImage. + * + * @return the BufferedImage which represents the destination. + */ + public BufferedImage getDestination() { + return destination; + } + + /** + * Gets the indices of destination bands. + * + * @return the array of destination bands. + */ + public int[] getDestinationBands() { + return destinationBands; + } + + /** + * Gets the index of the maximum pass to be decoded. + * This method returns Integer.MAX_VALUE, if + * getSourceNumProgressivePasses() method returns value + * that is equal to Integer.MAX_VALUE. Otherwise + * this method returns + * getSourceMinProgressivePass() + getSourceNumProgressivePasses() - 1. + * + * @return the index of the maximum pass to be decoded. + */ + public int getSourceMaxProgressivePass() { + if (getSourceNumProgressivePasses() == Integer.MAX_VALUE) { + return Integer.MAX_VALUE; + } + return getSourceMinProgressivePass() + getSourceNumProgressivePasses() - 1; + } + + /** + * Gets the index of the minimum progressive pass that is decoded, + * default is 0. + * + * @return the index of the minimum progressive pass that is decoded, + * default is 0. + */ + public int getSourceMinProgressivePass() { + return minProgressivePass; + } + + /** + * Gets the number of progressive passes. + * The default value is Integer.MAX_VALUE. + * + * @return the number of progressive passes. + */ + public int getSourceNumProgressivePasses() { + return numProgressivePasses; + } + + /** + * Gets the dimension of source image which will be rendered + * during decoding process. + * + * @return the source render size. + */ + public Dimension getSourceRenderSize() { + return sourceRenderSize; + } + + /** + * Sets the specified destination image. + * This image will be used by read, readAll, and readRaster methods, + * and a reference to it will be returned by those methods. + * + * @param destination the destination image. + */ + public void setDestination(BufferedImage destination) { + this.destination = destination; + } + + /** + * Sets the indices of the destination bands. + * + * @param destinationBands the indices of the destination bands. + */ + public void setDestinationBands(int[] destinationBands) { + this.destinationBands = destinationBands; + } + + @Override + public void setDestinationType(ImageTypeSpecifier destinationType) { + this.destinationType = destinationType; + } + + /** + * Sets the source progressive passes. + * + * @param minPass the index of the minimum pass to be decoded. + * @param numPasses the number of passes to be decoded. + */ + public void setSourceProgressivePasses(int minPass, int numPasses) { + minProgressivePass = minPass; + numProgressivePasses = numPasses; + } + + /** + * Sets the dimension size of source image if an + * image can be rendered at an arbitrary size. + * + * @param size the size of rendered image. + * + * @throws UnsupportedOperationException the unsupported operation exception + */ + public void setSourceRenderSize(Dimension size) throws UnsupportedOperationException { + if (!canSetSourceRenderSize) { + throw new UnsupportedOperationException("can't set source renderer size"); + } + sourceRenderSize = size; + } +} + |