replicant-frameworks_native/awt/javax/imageio/IIOImage.java
The Android Open Source Project 7c1b96a165 Initial Contribution
2008-10-21 07:00:00 -07:00

204 lines
6.1 KiB
Java

/*
* 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 javax.imageio.metadata.IIOMetadata;
import java.awt.image.RenderedImage;
import java.awt.image.Raster;
import java.awt.image.BufferedImage;
import java.util.List;
/**
* The IIOImage class combines the image, image's thumbnail and image's metadata.
* The image can be presented as RenderedImage or Raster object.
*/
public class IIOImage {
/** The image of this IIOImage. */
protected RenderedImage image;
/** The raster of this IIOImage. */
protected Raster raster;
/** The list with thumbnails associated with the image. */
protected List<? extends BufferedImage> thumbnails;
/** The metadata associated with the image. */
protected IIOMetadata metadata;
/**
* Instantiates a new IIOImage with the specified RenderedImage,
* list of thumbnails and metadata.
*
* @param image the image specified by RenderedImage.
* @param thumbnails the list of BufferedImage objects which
* represent the thumbnails of the image.
* @param metadata the metadata of the image.
*/
public IIOImage(RenderedImage image, List<? extends BufferedImage> thumbnails, IIOMetadata metadata) {
if (image == null) {
throw new IllegalArgumentException("image should not be NULL");
}
this.raster = null;
this.image = image;
this.thumbnails = thumbnails;
this.metadata = metadata;
}
/**
* Instantiates a new IIOImage with the specified Raster, list of
* thumbnails and metadata.
*
* @param raster the Raster.
* @param thumbnails the list of BufferedImage objects which
* represent the thumbnails of Raster data.
* @param metadata the metadata.
*/
public IIOImage(Raster raster, List<? extends BufferedImage> thumbnails, IIOMetadata metadata) {
if (raster == null) {
throw new IllegalArgumentException("raster should not be NULL");
}
this.image = null;
this.raster = raster;
this.thumbnails = thumbnails;
this.metadata = metadata;
}
/**
* Gets the RenderedImage object or returns null if this IIOImage
* object is associated with a Raster.
*
* @return the RenderedImage object or null if this IIOImage
* object is associated with a Raster.
*/
public RenderedImage getRenderedImage() {
return image;
}
/**
* Sets the RenderedImage to this IIOImage object.
*
* @param image the RenderedImage to be set to this IIOImage.
*/
public void setRenderedImage(RenderedImage image) {
if (image == null) {
throw new IllegalArgumentException("image should not be NULL");
}
raster = null;
this.image = image;
}
/**
* Returns true if the IIOImage object associated with a Raster, or
* false if it's associated with a RenderedImage.
*
* @return true if the IIOImage object associated with a Raster, or
* false if it's associated with a RenderedImage.
*/
public boolean hasRaster() {
return raster != null;
}
/**
* Gets the Raster object or returns null if this IIOImage object is
* associated with a RenderedImage.
*
* @return the Raster or null if this IIOImage object
* is associated with a RenderedImage.
*/
public Raster getRaster() {
return raster;
}
/**
* Sets the Raster to the IIOImage.
*
* @param raster the new Raster to the IIOImage.
*/
public void setRaster(Raster raster) {
if (raster == null) {
throw new IllegalArgumentException("raster should not be NULL");
}
image = null;
this.raster = raster;
}
/**
* Gets the number of thumbnails for this IIOImage.
*
* @return the number of thumbnails for this IIOImage.
*/
public int getNumThumbnails() {
return thumbnails != null ? thumbnails.size() : 0;
}
/**
* Gets the thumbnail with the specified index in the list.
*
* @param index the index of the thumbnail in the list.
*
* @return the thumbnail with the specified index in the list.
*/
public BufferedImage getThumbnail(int index) {
if (thumbnails != null) {
return thumbnails.get(index);
}
throw new IndexOutOfBoundsException("no thumbnails were set");
}
/**
* Gets the list of thumbnails.
*
* @return the list of thumbnails.
*/
public List<? extends BufferedImage> getThumbnails() {
return thumbnails;
}
/**
* Sets the list of thumbnails images to this IIOImage object.
*
* @param thumbnails the list of BufferedImage which represent
* thumbnails.
*/
public void setThumbnails(List<? extends BufferedImage> thumbnails) {
this.thumbnails = thumbnails;
}
/**
* Gets the metadata of this IIOImage.
*
* @return the metadata of this IIOImage.
*/
public IIOMetadata getMetadata() {
return metadata;
}
/**
* Sets the metadata to this IIOImage object.
*
* @param metadata the IIOMetadata, or null.
*/
public void setMetadata(IIOMetadata metadata) {
this.metadata = metadata;
}
}