/*
* @(#)IIOImage.java 1.22 05/11/17
*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package javax.imageio;
import java.awt.image.BufferedImage;
import java.awt.image.Raster;
import java.awt.image.RenderedImage;
import java.util.List;
import javax.imageio.metadata.IIOMetadata;
/**
* A simple container class to aggregate an image, a set of
* thumbnail (preview) images, and an object representing metadata
* associated with the image.
*
* <p> The image data may take the form of either a
* <code>RenderedImage</code>, or a <code>Raster</code>. Reader
* methods that return an <code>IIOImage</code> will always return a
* <code>BufferedImage</code> using the <code>RenderedImage</code>
* reference. Writer methods that accept an <code>IIOImage</code>
* will always accept a <code>RenderedImage</code>, and may optionally
* accept a <code>Raster</code>.
*
* <p> Exactly one of <code>getRenderedImage</code> and
* <code>getRaster</code> will return a non-<code>null</code> value.
* Subclasses are responsible for ensuring this behavior.
*
* @see ImageReader#readAll(int, ImageReadParam)
* @see ImageReader#readAll(java.util.Iterator)
* @see ImageWriter#write(javax.imageio.metadata.IIOMetadata,
* IIOImage, ImageWriteParam)
* @see ImageWriter#write(IIOImage)
* @see ImageWriter#writeToSequence(IIOImage, ImageWriteParam)
* @see ImageWriter#writeInsert(int, IIOImage, ImageWriteParam)
*
* @version 0.5
*/
public class IIOImage {
/**
* The <code>RenderedImage</code> being referenced.
*/
protected RenderedImage image;
/**
* The <code>Raster</code> being referenced.
*/
protected Raster raster;
/**
* A <code>List</code> of <code>BufferedImage</code> thumbnails,
* or <code>null</code>. Non-<code>BufferedImage</code> objects
* must not be stored in this <code>List</code>.
*/
protected List<? extends BufferedImage> thumbnails = null;
/**
* An <code>IIOMetadata</code> object containing metadata
* associated with the image.
*/
protected IIOMetadata metadata;
/**
* Constructs an <code>IIOImage</code> containing a
* <code>RenderedImage</code>, and thumbnails and metadata
* associated with it.
*
* <p> All parameters are stored by reference.
*
* <p> The <code>thumbnails</code> argument must either be
* <code>null</code> or contain only <code>BufferedImage</code>
* objects.
*
* @param image a <code>RenderedImage</code>.
* @param thumbnails a <code>List</code> of <code>BufferedImage</code>s,
* or <code>null</code>.
* @param metadata an <code>IIOMetadata</code> object, or
* <code>null</code>.
*
* @exception IllegalArgumentException if <code>image</code> is
* <code>null</code>.
*/
public IIOImage(RenderedImage image,
List<? extends BufferedImage> thumbnails,
IIOMetadata metadata) {
if (image == null) {
throw new IllegalArgumentException("image == null!");
}
this.image = image;
this.raster = null;
this.thumbnails = thumbnails;
this.metadata = metadata;
}
/**
=1= |