Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
227 lines
7.9 KiB
Java
227 lines
7.9 KiB
Java
package com.realityinteractive.imageio.tga;
|
|
|
|
/*
|
|
* TGAImageReaderSpi.java
|
|
* Copyright (c) 2003 Reality Interactive, Inc.
|
|
* See bottom of file for license and warranty information.
|
|
* Created on Sep 26, 2003
|
|
*/
|
|
|
|
import java.io.IOException;
|
|
import java.util.Locale;
|
|
|
|
import javax.imageio.ImageReader;
|
|
import javax.imageio.spi.ImageReaderSpi;
|
|
import javax.imageio.stream.ImageInputStream;
|
|
|
|
/**
|
|
* <p>A service provider for reading TGA images. Only {@link javax.imageio.stream.ImageInputStream}
|
|
* input types are allowed. See {@link com.realityinteractive.imageio.tga.TGAImageReader}
|
|
* for supported features.</p>
|
|
*
|
|
* @author Rob Grzywinski <a href="mailto:rgrzywinski@realityinteractive.com">rgrzywinski@realityinteractive.com</a>
|
|
* @version $Id: TGAImageReaderSpi.java,v 1.1 2005/04/12 11:23:53 ornedan Exp $
|
|
* @since 1.0
|
|
*/
|
|
public class TGAImageReaderSpi extends ImageReaderSpi
|
|
{
|
|
// =========================================================================
|
|
// NOTE: these should be package (default protected) as it is used
|
|
// frequently elsewhere
|
|
/**
|
|
* <p>The vendor name: Reality Interactive, Inc.</p>
|
|
*/
|
|
static final String VENDOR_NAME = "Reality Interactive, Inc.";
|
|
|
|
/**
|
|
* <p>The plugin version number.</p>
|
|
*/
|
|
static final String VERSION = "1.00";
|
|
|
|
/**
|
|
* <p>The class name for the TGA image reader.</p>
|
|
*/
|
|
static final String READER_CLASSNAME =
|
|
"com.realityinteractive.imageio.tga.TGAImageReader";
|
|
|
|
/**
|
|
* <p>The format names.</p>
|
|
*/
|
|
static final String[] FORMAT_NAMES = { "tga", "targa" };
|
|
|
|
/**
|
|
* <p>The canonical suffix names.</p>
|
|
*/
|
|
static final String[] SUFFIXES = { "tga", "targa" };
|
|
|
|
/**
|
|
* <p>The supported mime types.</p>
|
|
*/
|
|
static final String[] MIME_TYPES =
|
|
{ "application/tga", "application/x-tga", "application/x-targa",
|
|
"image/tga", "image/x-tga", "image/targa", "image/x-targa" };
|
|
|
|
/**
|
|
* <p>This is a read-only TGA plugin.</p>
|
|
*/
|
|
static final String[] WRITER_SPI_CLASSNAMES = null;
|
|
|
|
/**
|
|
* <p>The standard stream metadata format is not supported.</p>
|
|
*/
|
|
static final boolean SUPPORTS_STANDARD_STREAM_METADATA_FORMAT = false;
|
|
|
|
/**
|
|
* <p>There is no "native" stream metadata formats supported by the TGA
|
|
* plugin.</p>
|
|
*/
|
|
static final String NATIVE_STREAM_METADATA_FORMAT_NAME = null;
|
|
|
|
/**
|
|
* <p>There is no "native" stream metadata formats supported by the TGA
|
|
* plugin.</p>
|
|
*/
|
|
static final String NATIVE_STREAM_METADATA_FORMAT_CLASSNAME = null;
|
|
|
|
/**
|
|
* <p>There are no stream metadata formats other than the standard.</p>
|
|
*/
|
|
static final String[] EXTRA_STREAM_METADATA_FORMAT_NAMES = null;
|
|
|
|
/**
|
|
* <p>There are no stream metadata formats other than the standard.</p>
|
|
*/
|
|
static final String[] EXTRA_STREAM_METADATA_FORMAT_CLASSNAMES = null;
|
|
|
|
/**
|
|
* <p>The standard image metadata format is not supported.</p>
|
|
*/
|
|
static final boolean SUPPORTS_STANDARD_IMAGE_METADATA_FORMAT = false;
|
|
|
|
/**
|
|
* <p>There are no "native" image metadata formats supported by the TGA
|
|
* plugin.</p>
|
|
*/
|
|
static final String NATIVE_IMAGE_METADATA_FORMAT_NAME = null;
|
|
|
|
/**
|
|
* <p>There are no "native" image metadata formats supported by the TGA
|
|
* plugin.</p>
|
|
*/
|
|
static final String NATIVE_IMAGE_METADATA_FORMAT_CLASSNAME = null;
|
|
|
|
/**
|
|
* <p>There are no image metadata formats supported other than the standard.</p>
|
|
*/
|
|
static final String[] EXTRA_IMAGE_METADATA_FORMAT_NAMES = null;
|
|
|
|
/**
|
|
* <p>There are no image metadata formats supported other than the standard.</p>
|
|
*/
|
|
static final String[] EXTRA_IMAGE_METADATA_FORMAT_CLASSNAMES = null;
|
|
|
|
// =========================================================================
|
|
/**
|
|
* <p>Constructs an {@link javax.imageio.spi.ImageReaderSpi} that accepts
|
|
* {@link javax.imageio.stream.ImageInputStream} as its input type.</p>
|
|
*
|
|
* @see javax.imageio.spi.ImageReaderSpi#ImageReaderSpi()
|
|
*/
|
|
public TGAImageReaderSpi()
|
|
{
|
|
super(VENDOR_NAME, VERSION, FORMAT_NAMES, SUFFIXES, MIME_TYPES,
|
|
READER_CLASSNAME,
|
|
ImageReaderSpi.STANDARD_INPUT_TYPE,
|
|
WRITER_SPI_CLASSNAMES,
|
|
SUPPORTS_STANDARD_STREAM_METADATA_FORMAT,
|
|
NATIVE_STREAM_METADATA_FORMAT_NAME,
|
|
NATIVE_STREAM_METADATA_FORMAT_CLASSNAME,
|
|
EXTRA_STREAM_METADATA_FORMAT_NAMES,
|
|
EXTRA_STREAM_METADATA_FORMAT_CLASSNAMES,
|
|
SUPPORTS_STANDARD_IMAGE_METADATA_FORMAT,
|
|
NATIVE_IMAGE_METADATA_FORMAT_NAME,
|
|
NATIVE_IMAGE_METADATA_FORMAT_CLASSNAME,
|
|
EXTRA_IMAGE_METADATA_FORMAT_NAMES,
|
|
EXTRA_IMAGE_METADATA_FORMAT_CLASSNAMES);
|
|
}
|
|
|
|
/**
|
|
* @see javax.imageio.spi.ImageReaderSpi#canDecodeInput(java.lang.Object)
|
|
*/
|
|
public boolean canDecodeInput(final Object source)
|
|
throws IOException
|
|
{
|
|
// NOTE: the input source must be left in the same state as it started
|
|
// at (mark() and reset() should be used on ImageInputStream)
|
|
|
|
// ensure that the input type is a ImageInputStream as that is all that
|
|
// is supported
|
|
if(!(source instanceof ImageInputStream))
|
|
return false;
|
|
/* else -- source is a ImageInputStream */
|
|
|
|
// cast to ImageInputStream for convenience
|
|
final ImageInputStream inputStream = (ImageInputStream)source;
|
|
|
|
try
|
|
{
|
|
// set a mark at the current position so that the stream can be reset
|
|
inputStream.mark();
|
|
|
|
// there's no ideidentifiable header on a TGA file so a punt must
|
|
// occur. This will attempt to read the image type and if it is
|
|
// not known or allowed then false is returned.
|
|
// NOTE: 1.0.0 only supports un/compressed true color
|
|
inputStream.readUnsignedByte(); // idLength
|
|
inputStream.readUnsignedByte(); // has color map
|
|
final int imageType = inputStream.readUnsignedByte();
|
|
if( (imageType != TGAConstants.TRUE_COLOR) &&
|
|
(imageType != TGAConstants.RLE_TRUE_COLOR) &&
|
|
(imageType != TGAConstants.COLOR_MAP) &&
|
|
(imageType != TGAConstants.RLE_COLOR_MAP) )
|
|
{
|
|
return false;
|
|
} /* else -- it's *possible* (though not known) that this is a TGA */
|
|
|
|
return true;
|
|
} finally
|
|
{
|
|
// reset so that the ImageInputStream is put back where it was
|
|
inputStream.reset();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @see javax.imageio.spi.ImageReaderSpi#createReaderInstance(java.lang.Object)
|
|
*/
|
|
public ImageReader createReaderInstance(final Object extension)
|
|
throws IOException
|
|
{
|
|
// construct and return an ImageReader using this SPI
|
|
return new TGAImageReader(this);
|
|
}
|
|
|
|
/**
|
|
* @see javax.imageio.spi.IIOServiceProvider#getDescription(java.util.Locale)
|
|
*/
|
|
public String getDescription(final Locale locale)
|
|
{
|
|
return "TGA"; // FIXME: localize
|
|
}
|
|
}
|
|
// =============================================================================
|
|
/*
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with this library; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/ |