package org.libtiff.jai.codec; /* * XTIFF: eXtensible TIFF libraries for JAI. * * The contents of this file are subject to the JAVA ADVANCED IMAGING * SAMPLE INPUT-OUTPUT CODECS AND WIDGET HANDLING SOURCE CODE License * Version 1.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.sun.com/software/imaging/JAI/index.html * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. * * The Original Code is JAVA ADVANCED IMAGING SAMPLE INPUT-OUTPUT CODECS * AND WIDGET HANDLING SOURCE CODE. * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. * Portions created by: Niles Ritter * are Copyright (C): Niles Ritter, GeoTIFF.org, 1999,2000. * All Rights Reserved. * Contributor(s): Niles Ritter */ import java.io.IOException; import java.util.Enumeration; import java.util.Hashtable; import java.util.Vector; import java.util.TreeMap; import java.util.Iterator; // Warning: media libraries subject to change import com.sun.media.jai.codec.SeekableStream; /** * A class representing the factory for constructing a XTIFFDirectory, * and the corresponding XTIFFFields. If you are creating extensions * to those classes, extend this class as well. See the GeoTIFF package * for an example of how to do this. * * @see XTIFFField * @see XTIFFDirectory */ public class XTIFFFactory extends Object implements java.io.Serializable { /** * Default constructor */ public XTIFFFactory() {} /** * Constructs an XTIFFDirectoryFactory from a SeekableStream. * The directory parameter specifies which directory to read from * the linked list present in the stream; directory 0 is normally * read but it is possible to store multiple images in a single * TIFF file by maintaing multiple directories. * * @param stream a SeekableStream to read from. * @param directory the index of the directory to read. */ public XTIFFDirectory createDirectory(SeekableStream stream, int directory) throws IOException { return new XTIFFDirectory(stream,directory); } /** * Constructs a XTIFFDirectory by reading a SeekableStream. * The ifd_offset parameter specifies the stream offset from which * to begin reading; this mechanism is sometimes used to store * private IFDs within a TIFF file that are not part of the normal * sequence of IFDs. * * @param stream a SeekableStream to read from. * @param ifd_offset the long byte offset of the directory. */ public XTIFFDirectory createDirectory(SeekableStream stream, long ifd_offset) throws IOException { return new XTIFFDirectory(stream,ifd_offset); } /** * Constructs an empty XTIFFDirectory for encoding */ public XTIFFDirectory createDirectory() { return new XTIFFDirectory(); } /** * Constructs an XTIFFField from values * @param tag the TIFF tag listed in XTIFF * @param type the TIFF field type listed in XTIFFField * @param count the number of values in array obj * @param obj the array of values * @see XTIFFField */ public XTIFFField createField(int tag, int type, int count, Object obj) { return new XTIFFField(tag,type,count,obj); } }