You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2010/09/10 18:33:42 UTC

svn commit: r995859 [1/30] - in /commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan: ./ color/ common/ common/byteSources/ common/mylzw/ formats/bmp/ formats/bmp/pixelparsers/ formats/bmp/writers/ formats/gif/ formats/ico/ formats/jpeg/ fo...

Author: sebb
Date: Fri Sep 10 16:33:35 2010
New Revision: 995859

URL: http://svn.apache.org/viewvc?rev=995859&view=rev
Log:
Tab police

Modified:
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ColorTools.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/FormatCompliance.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageDump.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageFormat.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageInfo.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageReadException.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageWriteException.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/Sanselan.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/SanselanConstants.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/SanselanException.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/color/ColorConversions.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/color/ColorHSL.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/color/ColorHSV.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/color/ColorHunterLab.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/color/ColorXYZ.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/BinaryConstants.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/BinaryFileFunctions.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/BinaryFileParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/BinaryInputStream.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/BinaryOutputStream.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/BitInputStream.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/BitInputStreamFlexible.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/Compression.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/IBufferedImageFactory.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/IImageMetadata.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/ImageMetadata.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/MyByteArrayOutputStream.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/RationalNumber.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/RationalNumberUtilities.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/RgbBufferedImageFactory.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/SimpleBufferedImageFactory.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/ZLibUtils.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/byteSources/ByteSource.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/byteSources/ByteSourceArray.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/byteSources/ByteSourceFile.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/byteSources/ByteSourceInputStream.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/mylzw/BitsToByteInputStream.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/mylzw/MyBitInputStream.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/mylzw/MyBitOutputStream.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/mylzw/MyLZWCompressor.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/common/mylzw/MyLZWDecompressor.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/BmpHeaderInfo.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/BmpImageParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/ImageContents.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/pixelparsers/PixelParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/pixelparsers/PixelParserBitFields.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/pixelparsers/PixelParserRgb.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/pixelparsers/PixelParserRle.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/pixelparsers/PixelParserSimple.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/writers/BMPWriter.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/writers/BMPWriterPalette.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/writers/BMPWriterRGB.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/gif/GIFBlock.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/gif/GIFHeaderInfo.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/gif/GenericGIFBlock.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/gif/GifImageParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/gif/GraphicControlExtension.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/gif/ImageContents.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/gif/ImageDescriptor.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/ico/IcoImageParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/JpegConstants.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/JpegImageMetadata.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/JpegImageParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/JpegPhotoshopMetadata.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/JpegUtils.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/exifRewrite/ExifRewriter.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/iptc/IPTCBlock.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/iptc/IPTCConstants.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/iptc/IPTCParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/iptc/IPTCRecord.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/iptc/IPTCType.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/iptc/IPTCTypeLookup.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/iptc/JpegIptcRewriter.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/iptc/PhotoshopApp13Data.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/segments/APPNSegment.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/segments/App13Segment.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/segments/App2Segment.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/segments/GenericSegment.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/segments/JFIFSegment.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/segments/SOFNSegment.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/segments/SOSSegment.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/segments/Segment.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/segments/UnknownSegment.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/xmp/JpegRewriter.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/xmp/JpegXmpParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/xmp/JpegXmpRewriter.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/BitParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/GammaCorrection.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/PngConstants.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/PngCrc.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/PngImageInfo.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/PngImageParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/PngText.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/PngWriter.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/ScanExpediter.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/ScanExpediterInterlaced.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/ScanExpediterSimple.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/chunks/PNGChunk.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/chunks/PNGChunkIDAT.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/chunks/PNGChunkIHDR.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/chunks/PNGChunkPLTE.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/chunks/PNGChunkgAMA.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/chunks/PNGChunkiCCP.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/chunks/PNGChunkiTXt.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/chunks/PNGChunkpHYs.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/chunks/PNGChunktEXt.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/chunks/PNGChunkzTXt.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/chunks/PNGTextChunk.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/scanlinefilters/ScanlineFilter.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/scanlinefilters/ScanlineFilterAverage.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/scanlinefilters/ScanlineFilterNone.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/scanlinefilters/ScanlineFilterPaeth.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/scanlinefilters/ScanlineFilterSub.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/scanlinefilters/ScanlineFilterUp.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/pnm/FileInfo.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/pnm/PBMFileInfo.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/pnm/PBMWriter.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/pnm/PGMFileInfo.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/pnm/PGMWriter.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/pnm/PNMConstants.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/pnm/PNMImageParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/pnm/PNMWriter.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/pnm/PPMFileInfo.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/pnm/PPMWriter.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/pnm/WhiteSpaceReader.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/psd/ImageContents.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/psd/ImageResourceBlock.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/psd/ImageResourceType.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/psd/PSDConstants.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/psd/PSDHeaderInfo.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/psd/PsdImageParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/psd/dataparsers/DataParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/psd/dataparsers/DataParserBitmap.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/psd/dataparsers/DataParserCMYK.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/psd/dataparsers/DataParserGrayscale.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/psd/dataparsers/DataParserIndexed.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/psd/dataparsers/DataParserLab.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/psd/dataparsers/DataParserRGB.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/psd/dataparsers/DataParserStub.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/psd/datareaders/CompressedDataReader.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/psd/datareaders/DataReader.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/psd/datareaders/UncompressedDataReader.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tga/TgaImageParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/JpegImageData.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/TiffContents.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/TiffDirectory.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/TiffElement.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/TiffField.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/TiffHeader.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/TiffImageData.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/TiffImageMetadata.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/TiffImageParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/TiffReader.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/constants/AllTagConstants.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/constants/ExifTagConstants.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/constants/GPSTagConstants.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/constants/TagConstantsUtils.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/constants/TagInfo.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/constants/TiffConstants.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/constants/TiffDirectoryConstants.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/constants/TiffFieldTypeConstants.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/constants/TiffTagConstants.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/datareaders/DataReader.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/datareaders/DataReaderStrips.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/datareaders/DataReaderTiled.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/fieldtypes/FieldType.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/fieldtypes/FieldTypeASCII.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/fieldtypes/FieldTypeByte.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/fieldtypes/FieldTypeDouble.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/fieldtypes/FieldTypeFloat.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/fieldtypes/FieldTypeLong.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/fieldtypes/FieldTypeRational.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/fieldtypes/FieldTypeShort.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/fieldtypes/FieldTypeUnknown.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreter.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterBiLevel.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterCIELAB.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterCMYK.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterLogLUV.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterRGB.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterYCbCr.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/write/ImageDataOffsets.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/write/TiffImageWriterBase.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/write/TiffImageWriterLossless.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/write/TiffImageWriterLossy.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/write/TiffOutputDirectory.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/write/TiffOutputField.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/write/TiffOutputItem.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/write/TiffOutputSet.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/write/TiffOutputSummary.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/transparencyfilters/TransparencyFilter.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/transparencyfilters/TransparencyFilterGrayscale.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/transparencyfilters/TransparencyFilterIndexedColor.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/transparencyfilters/TransparencyFilterTrueColor.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/icc/IccConstants.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/icc/IccProfileInfo.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/icc/IccProfileParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/icc/IccTag.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/icc/IccTagDataType.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/icc/IccTagType.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/palette/ColorSpaceSubset.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/palette/MedianCutQuantizer.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/palette/Palette.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/palette/PaletteFactory.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/palette/QuantizedPalette.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/palette/SimplePalette.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/util/CachingInputStream.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/util/CachingOutputStream.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/util/Debug.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/util/DebugInputStream.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/util/DebugOutputStream.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/util/IOUtils.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/util/ParamMap.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/util/UnicodeUtils.java

Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ColorTools.java
URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ColorTools.java?rev=995859&r1=995858&r2=995859&view=diff
==============================================================================
--- commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ColorTools.java (original)
+++ commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ColorTools.java Fri Sep 10 16:33:35 2010
@@ -35,223 +35,223 @@ import java.io.IOException;
  */
 public class ColorTools {
 
-	public BufferedImage correctImage(BufferedImage src, File file)
-			throws ImageReadException, IOException {
-		ICC_Profile icc = Sanselan.getICCProfile(file);
-		if (icc == null)
-			return src;
-
-		ICC_ColorSpace cs = new ICC_ColorSpace(icc);
-
-		BufferedImage dst = convertFromColorSpace(src, cs);
-		return dst;
-	}
-
-	public BufferedImage relabelColorSpace(BufferedImage bi, ICC_Profile profile)
-			throws ImagingOpException {
-		ICC_ColorSpace cs = new ICC_ColorSpace(profile);
-
-		return relabelColorSpace(bi, cs);
-	}
-
-	public BufferedImage relabelColorSpace(BufferedImage bi, ColorSpace cs)
-			throws ImagingOpException {
-		// This does not do the conversion. It tries to relabel the
-		// BufferedImage
-		// with its actual (presumably correct) Colorspace.
-		// use this when the image is mislabeled, presumably having been
-		// wrongly assumed to be sRGB
-
-		ColorModel cm = deriveColorModel(bi, cs);
-
-		return relabelColorSpace(bi, cm);
-
-	}
-
-	public BufferedImage relabelColorSpace(BufferedImage bi, ColorModel cm)
-			throws ImagingOpException {
-		// This does not do the conversion. It tries to relabel the
-		// BufferedImage
-		// with its actual (presumably correct) Colorspace.
-		// use this when the image is mislabeled, presumably having been
-		// wrongly assumed to be sRGB
-
-		BufferedImage result = new BufferedImage(cm, bi.getRaster(), false,
-				null);
-
-		return result;
-	}
-
-	public ColorModel deriveColorModel(BufferedImage bi, ColorSpace cs)
-			throws ImagingOpException {
-		// boolean hasAlpha = (bi.getAlphaRaster() != null);
-		return deriveColorModel(bi, cs, false);
-	}
-
-	public ColorModel deriveColorModel(BufferedImage bi, ColorSpace cs,
-			boolean force_no_alpha) throws ImagingOpException {
-		return deriveColorModel(bi.getColorModel(), cs, force_no_alpha);
-	}
-
-	public ColorModel deriveColorModel(ColorModel old_cm, ColorSpace cs,
-			boolean force_no_alpha) throws ImagingOpException {
-
-		if (old_cm instanceof ComponentColorModel) {
-			ComponentColorModel ccm = (ComponentColorModel) old_cm;
-			// ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB);
-			if (force_no_alpha)
-				return new ComponentColorModel(cs, false, false,
-						ComponentColorModel.OPAQUE, ccm.getTransferType());
-			else
-				return new ComponentColorModel(cs, ccm.hasAlpha(), ccm
-						.isAlphaPremultiplied(), ccm.getTransparency(), ccm
-						.getTransferType());
-		} else if (old_cm instanceof DirectColorModel) {
-			DirectColorModel dcm = (DirectColorModel) old_cm;
-
-			int old_mask = dcm.getRedMask() | dcm.getGreenMask()
-					| dcm.getBlueMask() | dcm.getAlphaMask();
-
-			int old_bits = count_bits_in_mask(old_mask);
-
-			return new DirectColorModel(cs, old_bits, dcm.getRedMask(), dcm
-					.getGreenMask(), dcm.getBlueMask(), dcm.getAlphaMask(), dcm
-					.isAlphaPremultiplied(), dcm.getTransferType());
-		}
-		// else if (old_cm instanceof PackedColorModel)
-		// {
-		// PackedColorModel pcm = (PackedColorModel) old_cm;
-		//
-		// // int old_mask = dcm.getRedMask() | dcm.getGreenMask()
-		// // | dcm.getBlueMask() | dcm.getAlphaMask();
-		//
-		// int old_masks[] = pcm.getMasks();
-		// // System.out.println("old_mask: " + old_mask);
-		// int old_bits = count_bits_in_mask(old_masks);
-		// // System.out.println("old_bits: " + old_bits);
-		//
-		// // PackedColorModel(ColorSpace space, int bits, int rmask, int gmask,
-		// int bmask, int amask, boolean isAlphaPremultiplied, int trans, int
-		// transferType)
-		// cm = new PackedColorModel(cs, old_bits, pcm.getMasks(),
-		//
-		// pcm.isAlphaPremultiplied(), pcm.getTransparency(), pcm
-		// .getTransferType());
-		// }
-
-		throw new ImagingOpException("Could not clone unknown ColorModel Type.");
-	}
-
-	private int count_bits_in_mask(int i) {
-		int count = 0;
-		while (i != 0) {
-			count += (i & 1);
-			// uses the unsigned version of java's right shift operator,
-			// so that left hand bits are zeroed.
-			i >>>= 1;
-		}
-		return count;
-	}
-
-	public BufferedImage convertToColorSpace(BufferedImage bi, ColorSpace to) {
-		ColorSpace from = bi.getColorModel().getColorSpace();
-
-		RenderingHints hints = new RenderingHints(RenderingHints.KEY_RENDERING,
-				RenderingHints.VALUE_RENDER_QUALITY);
-		hints.put(RenderingHints.KEY_COLOR_RENDERING,
-				RenderingHints.VALUE_COLOR_RENDER_QUALITY);
-		hints.put(RenderingHints.KEY_DITHERING,
-				RenderingHints.VALUE_DITHER_ENABLE);
-
-		ColorConvertOp op = new ColorConvertOp(from, to, hints);
-
-		BufferedImage result = op.filter(bi, null);
-
-		result = relabelColorSpace(result, to);
-
-		return result;
-	}
-
-	public BufferedImage convertTosRGB(BufferedImage bi) {
-		ColorSpace cs_sRGB = ColorSpace.getInstance(ColorSpace.CS_sRGB);
-
-		ColorModel srgbCM = ColorModel.getRGBdefault();
-		cs_sRGB = srgbCM.getColorSpace();
-
-		return convertToColorSpace(bi, cs_sRGB);
-	}
-
-	protected BufferedImage convertFromColorSpace(BufferedImage bi,
-			ColorSpace from) {
-		ColorSpace cs_sRGB;
-
-		ColorModel srgbCM = ColorModel.getRGBdefault();
-		cs_sRGB = srgbCM.getColorSpace();
-
-		return convertBetweenColorSpaces(bi, from, cs_sRGB);
-
-	}
-
-	public BufferedImage convertBetweenICCProfiles(BufferedImage bi,
-			ICC_Profile from, ICC_Profile to) {
-		ICC_ColorSpace cs_from = new ICC_ColorSpace(from);
-		ICC_ColorSpace cs_to = new ICC_ColorSpace(to);
-
-		return convertBetweenColorSpaces(bi, cs_from, cs_to);
-	}
-
-	public BufferedImage convertToICCProfile(BufferedImage bi, ICC_Profile to) {
-		ICC_ColorSpace cs_to = new ICC_ColorSpace(to);
-
-		return convertToColorSpace(bi, cs_to);
-	}
-
-	public BufferedImage convertBetweenColorSpacesX2(BufferedImage bi,
-			ColorSpace from, ColorSpace to) {
-		RenderingHints hints = new RenderingHints(RenderingHints.KEY_RENDERING,
-				RenderingHints.VALUE_RENDER_QUALITY);
-		hints.put(RenderingHints.KEY_COLOR_RENDERING,
-				RenderingHints.VALUE_COLOR_RENDER_QUALITY);
-		hints.put(RenderingHints.KEY_DITHERING,
-				RenderingHints.VALUE_DITHER_ENABLE);
-
-		// bi = relabelColorSpace(bi, cs);
-		// dumpColorSpace("\tcs_sRGB", cs_sRGB);
-		// dumpColorSpace("\tColorModel.getRGBdefaultc",
-		// ColorModel.getRGBdefault().getColorSpace());
-
-		bi = relabelColorSpace(bi, from);
-		ColorConvertOp op = new ColorConvertOp(from, to, hints);
-		bi = op.filter(bi, null);
-
-		bi = relabelColorSpace(bi, from);
-
-		bi = op.filter(bi, null);
-
-		bi = relabelColorSpace(bi, to);
-
-		return bi;
-
-	}
-
-	public BufferedImage convertBetweenColorSpaces(BufferedImage bi,
-			ColorSpace from, ColorSpace to) {
-		RenderingHints hints = new RenderingHints(RenderingHints.KEY_RENDERING,
-				RenderingHints.VALUE_RENDER_QUALITY);
-		hints.put(RenderingHints.KEY_COLOR_RENDERING,
-				RenderingHints.VALUE_COLOR_RENDER_QUALITY);
-		hints.put(RenderingHints.KEY_DITHERING,
-				RenderingHints.VALUE_DITHER_ENABLE);
-
-		ColorConvertOp op = new ColorConvertOp(from, to, hints);
+    public BufferedImage correctImage(BufferedImage src, File file)
+            throws ImageReadException, IOException {
+        ICC_Profile icc = Sanselan.getICCProfile(file);
+        if (icc == null)
+            return src;
+
+        ICC_ColorSpace cs = new ICC_ColorSpace(icc);
+
+        BufferedImage dst = convertFromColorSpace(src, cs);
+        return dst;
+    }
+
+    public BufferedImage relabelColorSpace(BufferedImage bi, ICC_Profile profile)
+            throws ImagingOpException {
+        ICC_ColorSpace cs = new ICC_ColorSpace(profile);
+
+        return relabelColorSpace(bi, cs);
+    }
+
+    public BufferedImage relabelColorSpace(BufferedImage bi, ColorSpace cs)
+            throws ImagingOpException {
+        // This does not do the conversion. It tries to relabel the
+        // BufferedImage
+        // with its actual (presumably correct) Colorspace.
+        // use this when the image is mislabeled, presumably having been
+        // wrongly assumed to be sRGB
+
+        ColorModel cm = deriveColorModel(bi, cs);
+
+        return relabelColorSpace(bi, cm);
+
+    }
+
+    public BufferedImage relabelColorSpace(BufferedImage bi, ColorModel cm)
+            throws ImagingOpException {
+        // This does not do the conversion. It tries to relabel the
+        // BufferedImage
+        // with its actual (presumably correct) Colorspace.
+        // use this when the image is mislabeled, presumably having been
+        // wrongly assumed to be sRGB
+
+        BufferedImage result = new BufferedImage(cm, bi.getRaster(), false,
+                null);
+
+        return result;
+    }
+
+    public ColorModel deriveColorModel(BufferedImage bi, ColorSpace cs)
+            throws ImagingOpException {
+        // boolean hasAlpha = (bi.getAlphaRaster() != null);
+        return deriveColorModel(bi, cs, false);
+    }
+
+    public ColorModel deriveColorModel(BufferedImage bi, ColorSpace cs,
+            boolean force_no_alpha) throws ImagingOpException {
+        return deriveColorModel(bi.getColorModel(), cs, force_no_alpha);
+    }
+
+    public ColorModel deriveColorModel(ColorModel old_cm, ColorSpace cs,
+            boolean force_no_alpha) throws ImagingOpException {
+
+        if (old_cm instanceof ComponentColorModel) {
+            ComponentColorModel ccm = (ComponentColorModel) old_cm;
+            // ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB);
+            if (force_no_alpha)
+                return new ComponentColorModel(cs, false, false,
+                        ComponentColorModel.OPAQUE, ccm.getTransferType());
+            else
+                return new ComponentColorModel(cs, ccm.hasAlpha(), ccm
+                        .isAlphaPremultiplied(), ccm.getTransparency(), ccm
+                        .getTransferType());
+        } else if (old_cm instanceof DirectColorModel) {
+            DirectColorModel dcm = (DirectColorModel) old_cm;
+
+            int old_mask = dcm.getRedMask() | dcm.getGreenMask()
+                    | dcm.getBlueMask() | dcm.getAlphaMask();
+
+            int old_bits = count_bits_in_mask(old_mask);
+
+            return new DirectColorModel(cs, old_bits, dcm.getRedMask(), dcm
+                    .getGreenMask(), dcm.getBlueMask(), dcm.getAlphaMask(), dcm
+                    .isAlphaPremultiplied(), dcm.getTransferType());
+        }
+        // else if (old_cm instanceof PackedColorModel)
+        // {
+        // PackedColorModel pcm = (PackedColorModel) old_cm;
+        //
+        // // int old_mask = dcm.getRedMask() | dcm.getGreenMask()
+        // // | dcm.getBlueMask() | dcm.getAlphaMask();
+        //
+        // int old_masks[] = pcm.getMasks();
+        // // System.out.println("old_mask: " + old_mask);
+        // int old_bits = count_bits_in_mask(old_masks);
+        // // System.out.println("old_bits: " + old_bits);
+        //
+        // // PackedColorModel(ColorSpace space, int bits, int rmask, int gmask,
+        // int bmask, int amask, boolean isAlphaPremultiplied, int trans, int
+        // transferType)
+        // cm = new PackedColorModel(cs, old_bits, pcm.getMasks(),
+        //
+        // pcm.isAlphaPremultiplied(), pcm.getTransparency(), pcm
+        // .getTransferType());
+        // }
+
+        throw new ImagingOpException("Could not clone unknown ColorModel Type.");
+    }
+
+    private int count_bits_in_mask(int i) {
+        int count = 0;
+        while (i != 0) {
+            count += (i & 1);
+            // uses the unsigned version of java's right shift operator,
+            // so that left hand bits are zeroed.
+            i >>>= 1;
+        }
+        return count;
+    }
+
+    public BufferedImage convertToColorSpace(BufferedImage bi, ColorSpace to) {
+        ColorSpace from = bi.getColorModel().getColorSpace();
+
+        RenderingHints hints = new RenderingHints(RenderingHints.KEY_RENDERING,
+                RenderingHints.VALUE_RENDER_QUALITY);
+        hints.put(RenderingHints.KEY_COLOR_RENDERING,
+                RenderingHints.VALUE_COLOR_RENDER_QUALITY);
+        hints.put(RenderingHints.KEY_DITHERING,
+                RenderingHints.VALUE_DITHER_ENABLE);
+
+        ColorConvertOp op = new ColorConvertOp(from, to, hints);
+
+        BufferedImage result = op.filter(bi, null);
+
+        result = relabelColorSpace(result, to);
+
+        return result;
+    }
+
+    public BufferedImage convertTosRGB(BufferedImage bi) {
+        ColorSpace cs_sRGB = ColorSpace.getInstance(ColorSpace.CS_sRGB);
+
+        ColorModel srgbCM = ColorModel.getRGBdefault();
+        cs_sRGB = srgbCM.getColorSpace();
+
+        return convertToColorSpace(bi, cs_sRGB);
+    }
+
+    protected BufferedImage convertFromColorSpace(BufferedImage bi,
+            ColorSpace from) {
+        ColorSpace cs_sRGB;
+
+        ColorModel srgbCM = ColorModel.getRGBdefault();
+        cs_sRGB = srgbCM.getColorSpace();
+
+        return convertBetweenColorSpaces(bi, from, cs_sRGB);
+
+    }
+
+    public BufferedImage convertBetweenICCProfiles(BufferedImage bi,
+            ICC_Profile from, ICC_Profile to) {
+        ICC_ColorSpace cs_from = new ICC_ColorSpace(from);
+        ICC_ColorSpace cs_to = new ICC_ColorSpace(to);
+
+        return convertBetweenColorSpaces(bi, cs_from, cs_to);
+    }
+
+    public BufferedImage convertToICCProfile(BufferedImage bi, ICC_Profile to) {
+        ICC_ColorSpace cs_to = new ICC_ColorSpace(to);
+
+        return convertToColorSpace(bi, cs_to);
+    }
+
+    public BufferedImage convertBetweenColorSpacesX2(BufferedImage bi,
+            ColorSpace from, ColorSpace to) {
+        RenderingHints hints = new RenderingHints(RenderingHints.KEY_RENDERING,
+                RenderingHints.VALUE_RENDER_QUALITY);
+        hints.put(RenderingHints.KEY_COLOR_RENDERING,
+                RenderingHints.VALUE_COLOR_RENDER_QUALITY);
+        hints.put(RenderingHints.KEY_DITHERING,
+                RenderingHints.VALUE_DITHER_ENABLE);
+
+        // bi = relabelColorSpace(bi, cs);
+        // dumpColorSpace("\tcs_sRGB", cs_sRGB);
+        // dumpColorSpace("\tColorModel.getRGBdefaultc",
+        // ColorModel.getRGBdefault().getColorSpace());
+
+        bi = relabelColorSpace(bi, from);
+        ColorConvertOp op = new ColorConvertOp(from, to, hints);
+        bi = op.filter(bi, null);
+
+        bi = relabelColorSpace(bi, from);
+
+        bi = op.filter(bi, null);
+
+        bi = relabelColorSpace(bi, to);
+
+        return bi;
+
+    }
+
+    public BufferedImage convertBetweenColorSpaces(BufferedImage bi,
+            ColorSpace from, ColorSpace to) {
+        RenderingHints hints = new RenderingHints(RenderingHints.KEY_RENDERING,
+                RenderingHints.VALUE_RENDER_QUALITY);
+        hints.put(RenderingHints.KEY_COLOR_RENDERING,
+                RenderingHints.VALUE_COLOR_RENDER_QUALITY);
+        hints.put(RenderingHints.KEY_DITHERING,
+                RenderingHints.VALUE_DITHER_ENABLE);
+
+        ColorConvertOp op = new ColorConvertOp(from, to, hints);
 
-		bi = relabelColorSpace(bi, from);
+        bi = relabelColorSpace(bi, from);
 
-		BufferedImage result = op.filter(bi, null);
+        BufferedImage result = op.filter(bi, null);
 
-		result = relabelColorSpace(result, to);
+        result = relabelColorSpace(result, to);
 
-		return result;
-	}
+        return result;
+    }
 
 }
\ No newline at end of file

Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/FormatCompliance.java
URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/FormatCompliance.java?rev=995859&r1=995858&r2=995859&view=diff
==============================================================================
--- commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/FormatCompliance.java (original)
+++ commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/FormatCompliance.java Fri Sep 10 16:33:35 2010
@@ -23,145 +23,145 @@ import java.util.ArrayList;
 
 public class FormatCompliance
 {
-	private final boolean failOnError;
-	private final String description;
-	private final ArrayList comments = new ArrayList();
-
-	public FormatCompliance(String description)
-	{
-		this.description = description;
-		failOnError = false;
-	}
-
-	public FormatCompliance(String description, boolean fail_on_error)
-	{
-		this.description = description;
-		this.failOnError = fail_on_error;
-	}
-
-	public static final FormatCompliance getDefault()
-	{
-		return new FormatCompliance("ignore", false);
-	}
-
-	public void addComment(String s) throws ImageReadException
-	{
-		comments.add(s);
-		if (failOnError)
-			throw new ImageReadException(s);
-	}
-
-	public void addComment(String s, int value) throws ImageReadException
-	{
-		addComment(s + ": " + getValueDescription(value));
-	}
-
-	public String toString()
-	{
-		StringWriter sw = new StringWriter();
-		PrintWriter pw = new PrintWriter(sw);
-
-		dump(pw);
-
-		return sw.getBuffer().toString();
-	}
-
-	public void dump()
-	{
-		dump(new PrintWriter(new OutputStreamWriter(System.out)));
-	}
-
-	public void dump(PrintWriter pw)
-	{
-		pw.println("Format Compliance: " + description);
-
-		if (comments.size() == 0)
-			pw.println("\t" + "No comments.");
-		else
-		{
-			for (int i = 0; i < comments.size(); i++)
-				pw.println("\t" + (i + 1) + ": " + comments.get(i));
-		}
-		pw.println("");
-		pw.flush();
-	}
-
-	private String getValueDescription(int value)
-	{
-		return value + " (" + Integer.toHexString(value) + ")";
-	}
-
-	public boolean compare_bytes(String name, byte expected[], byte actual[])
-			throws ImageReadException
-	{
-		if (expected.length != actual.length)
-		{
-			addComment(name + ": " + "Unexpected length: (expected: "
-					+ expected.length + ", actual: " + actual.length + ")");
-			return false;
-		}
-		else
-		{
-			for (int i = 0; i < expected.length; i++)
-			{
-				//				System.out.println("expected: "
-				//							+ getValueDescription(expected[i]) + ", actual: "
-				//							+ getValueDescription(actual[i]) + ")");
-				if (expected[i] != actual[i])
-				{
-					addComment(name + ": " + "Unexpected value: (expected: "
-							+ getValueDescription(expected[i]) + ", actual: "
-							+ getValueDescription(actual[i]) + ")");
-					return false;
-				}
-			}
-		}
-
-		return true;
-	}
-
-	public boolean checkBounds(String name, int min, int max, int actual)
-			throws ImageReadException
-	{
-		if ((actual < min) || (actual > max))
-		{
-			addComment(name + ": " + "bounds check: " + min + " <= " + actual
-					+ " <= " + max + ": false");
-			return false;
-		}
-
-		return true;
-	}
-
-	public boolean compare(String name, int valid, int actual)
-			throws ImageReadException
-	{
-		return compare(name, new int[]{
-			valid,
-		}, actual);
-	}
-
-	public boolean compare(String name, int valid[], int actual)
-			throws ImageReadException
-	{
-		for (int i = 0; i < valid.length; i++)
-			if (actual == valid[i])
-				return true;
-
-		StringBuffer result = new StringBuffer();
-		result.append(name + ": " + "Unexpected value: (valid: ");
-		if (valid.length > 1)
-			result.append("{");
-		for (int i = 0; i < valid.length; i++)
-		{
-			if (i > 0)
-				result.append(", ");
-			result.append(getValueDescription(valid[i]));
-		}
-		if (valid.length > 1)
-			result.append("}");
-		result.append(", actual: " + getValueDescription(actual) + ")");
-		addComment(result.toString());
-		return false;
-	}
+    private final boolean failOnError;
+    private final String description;
+    private final ArrayList comments = new ArrayList();
+
+    public FormatCompliance(String description)
+    {
+        this.description = description;
+        failOnError = false;
+    }
+
+    public FormatCompliance(String description, boolean fail_on_error)
+    {
+        this.description = description;
+        this.failOnError = fail_on_error;
+    }
+
+    public static final FormatCompliance getDefault()
+    {
+        return new FormatCompliance("ignore", false);
+    }
+
+    public void addComment(String s) throws ImageReadException
+    {
+        comments.add(s);
+        if (failOnError)
+            throw new ImageReadException(s);
+    }
+
+    public void addComment(String s, int value) throws ImageReadException
+    {
+        addComment(s + ": " + getValueDescription(value));
+    }
+
+    public String toString()
+    {
+        StringWriter sw = new StringWriter();
+        PrintWriter pw = new PrintWriter(sw);
+
+        dump(pw);
+
+        return sw.getBuffer().toString();
+    }
+
+    public void dump()
+    {
+        dump(new PrintWriter(new OutputStreamWriter(System.out)));
+    }
+
+    public void dump(PrintWriter pw)
+    {
+        pw.println("Format Compliance: " + description);
+
+        if (comments.size() == 0)
+            pw.println("\t" + "No comments.");
+        else
+        {
+            for (int i = 0; i < comments.size(); i++)
+                pw.println("\t" + (i + 1) + ": " + comments.get(i));
+        }
+        pw.println("");
+        pw.flush();
+    }
+
+    private String getValueDescription(int value)
+    {
+        return value + " (" + Integer.toHexString(value) + ")";
+    }
+
+    public boolean compare_bytes(String name, byte expected[], byte actual[])
+            throws ImageReadException
+    {
+        if (expected.length != actual.length)
+        {
+            addComment(name + ": " + "Unexpected length: (expected: "
+                    + expected.length + ", actual: " + actual.length + ")");
+            return false;
+        }
+        else
+        {
+            for (int i = 0; i < expected.length; i++)
+            {
+                //                System.out.println("expected: "
+                //                            + getValueDescription(expected[i]) + ", actual: "
+                //                            + getValueDescription(actual[i]) + ")");
+                if (expected[i] != actual[i])
+                {
+                    addComment(name + ": " + "Unexpected value: (expected: "
+                            + getValueDescription(expected[i]) + ", actual: "
+                            + getValueDescription(actual[i]) + ")");
+                    return false;
+                }
+            }
+        }
+
+        return true;
+    }
+
+    public boolean checkBounds(String name, int min, int max, int actual)
+            throws ImageReadException
+    {
+        if ((actual < min) || (actual > max))
+        {
+            addComment(name + ": " + "bounds check: " + min + " <= " + actual
+                    + " <= " + max + ": false");
+            return false;
+        }
+
+        return true;
+    }
+
+    public boolean compare(String name, int valid, int actual)
+            throws ImageReadException
+    {
+        return compare(name, new int[]{
+            valid,
+        }, actual);
+    }
+
+    public boolean compare(String name, int valid[], int actual)
+            throws ImageReadException
+    {
+        for (int i = 0; i < valid.length; i++)
+            if (actual == valid[i])
+                return true;
+
+        StringBuffer result = new StringBuffer();
+        result.append(name + ": " + "Unexpected value: (valid: ");
+        if (valid.length > 1)
+            result.append("{");
+        for (int i = 0; i < valid.length; i++)
+        {
+            if (i > 0)
+                result.append(", ");
+            result.append(getValueDescription(valid[i]));
+        }
+        if (valid.length > 1)
+            result.append("}");
+        result.append(", actual: " + getValueDescription(actual) + ")");
+        addComment(result.toString());
+        return false;
+    }
 }
\ No newline at end of file

Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageDump.java
URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageDump.java?rev=995859&r1=995858&r2=995859&view=diff
==============================================================================
--- commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageDump.java (original)
+++ commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageDump.java Fri Sep 10 16:33:35 2010
@@ -27,83 +27,83 @@ import org.apache.sanselan.icc.IccProfil
 
 public class ImageDump
 {
-	private String colorSpaceTypeToName(ColorSpace cs)
-	{
-		//		System.out.println(prefix + ": " + "type: "
-		//				+ cs.getType() );
-		switch (cs.getType())
-		{
-			case ColorSpace.TYPE_CMYK :
-				return "TYPE_CMYK";
-			case ColorSpace.TYPE_RGB :
-				return "TYPE_RGB";
-
-			case ColorSpace.CS_sRGB :
-				return "CS_sRGB";
-			case ColorSpace.CS_GRAY :
-				return "CS_GRAY";
-			case ColorSpace.CS_CIEXYZ :
-				return "CS_CIEXYZ";
-			case ColorSpace.CS_LINEAR_RGB :
-				return "CS_LINEAR_RGB";
-			case ColorSpace.CS_PYCC :
-				return "CS_PYCC";
-		}
-
-		return "unknown";
-	}
-
-	public void dumpColorSpace(String prefix, ColorSpace cs)
-			throws ImageReadException, IOException
-	{
-		System.out.println(prefix + ": " + "type: " + cs.getType() + " ("
-				+ colorSpaceTypeToName(cs) + ")");
-
-		if (!(cs instanceof ICC_ColorSpace))
-		{
-			System.out.println(prefix + ": " + "Unknown ColorSpace: "
-					+ cs.getClass().getName());
-			return;
-		}
-
-		ICC_ColorSpace fICC_ColorSpace = (ICC_ColorSpace) cs;
-		ICC_Profile fICC_Profile = fICC_ColorSpace.getProfile();
-
-		byte bytes[] = fICC_Profile.getData();
-
-		IccProfileParser parser = new IccProfileParser();
-
-		IccProfileInfo info = parser.getICCProfileInfo(bytes);
-		info.dump(prefix);
-	}
-
-	public void dump(BufferedImage src) throws ImageReadException, IOException
-	{
-		dump("", src);
-	}
-
-	public void dump(String prefix, BufferedImage src)
-			throws ImageReadException, IOException
-	{
-		System.out.println(prefix + ": " + "dump");
-		dumpColorSpace(prefix, src.getColorModel().getColorSpace());
-		dumpBIProps(prefix, src);
-	}
-
-	public void dumpBIProps(String prefix, BufferedImage src)
-	{
-		String keys[] = src.getPropertyNames();
-		if (keys == null)
-		{
-			System.out.println(prefix + ": no props");
-			return;
-		}
-		for (int i = 0; i < keys.length; i++)
-		{
-			String key = keys[i];
-			System.out.println(prefix + ": " + key + ": "
-					+ src.getProperty(key));
-		}
-	}
+    private String colorSpaceTypeToName(ColorSpace cs)
+    {
+        //        System.out.println(prefix + ": " + "type: "
+        //                + cs.getType() );
+        switch (cs.getType())
+        {
+            case ColorSpace.TYPE_CMYK :
+                return "TYPE_CMYK";
+            case ColorSpace.TYPE_RGB :
+                return "TYPE_RGB";
+
+            case ColorSpace.CS_sRGB :
+                return "CS_sRGB";
+            case ColorSpace.CS_GRAY :
+                return "CS_GRAY";
+            case ColorSpace.CS_CIEXYZ :
+                return "CS_CIEXYZ";
+            case ColorSpace.CS_LINEAR_RGB :
+                return "CS_LINEAR_RGB";
+            case ColorSpace.CS_PYCC :
+                return "CS_PYCC";
+        }
+
+        return "unknown";
+    }
+
+    public void dumpColorSpace(String prefix, ColorSpace cs)
+            throws ImageReadException, IOException
+    {
+        System.out.println(prefix + ": " + "type: " + cs.getType() + " ("
+                + colorSpaceTypeToName(cs) + ")");
+
+        if (!(cs instanceof ICC_ColorSpace))
+        {
+            System.out.println(prefix + ": " + "Unknown ColorSpace: "
+                    + cs.getClass().getName());
+            return;
+        }
+
+        ICC_ColorSpace fICC_ColorSpace = (ICC_ColorSpace) cs;
+        ICC_Profile fICC_Profile = fICC_ColorSpace.getProfile();
+
+        byte bytes[] = fICC_Profile.getData();
+
+        IccProfileParser parser = new IccProfileParser();
+
+        IccProfileInfo info = parser.getICCProfileInfo(bytes);
+        info.dump(prefix);
+    }
+
+    public void dump(BufferedImage src) throws ImageReadException, IOException
+    {
+        dump("", src);
+    }
+
+    public void dump(String prefix, BufferedImage src)
+            throws ImageReadException, IOException
+    {
+        System.out.println(prefix + ": " + "dump");
+        dumpColorSpace(prefix, src.getColorModel().getColorSpace());
+        dumpBIProps(prefix, src);
+    }
+
+    public void dumpBIProps(String prefix, BufferedImage src)
+    {
+        String keys[] = src.getPropertyNames();
+        if (keys == null)
+        {
+            System.out.println(prefix + ": no props");
+            return;
+        }
+        for (int i = 0; i < keys.length; i++)
+        {
+            String key = keys[i];
+            System.out.println(prefix + ": " + key + ": "
+                    + src.getProperty(key));
+        }
+    }
 
 }
\ No newline at end of file

Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageFormat.java
URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageFormat.java?rev=995859&r1=995858&r2=995859&view=diff
==============================================================================
--- commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageFormat.java (original)
+++ commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageFormat.java Fri Sep 10 16:33:35 2010
@@ -18,72 +18,72 @@ package org.apache.sanselan;
 
 public class ImageFormat
 {
-	public final String name;
-	public final String extension;
-	public final boolean actual;
-
-	private ImageFormat(String name, boolean actual)
-	{
-		this.name = name;
-		this.extension = name;
-		this.actual = actual;
-	}
-
-	private ImageFormat(String name)
-	{
-		this.name = name;
-		this.extension = name;
-		actual = true;
-	}
-
-	public boolean equals(Object o)
-	{
-		if (!(o instanceof ImageFormat))
-			return false;
-
-		ImageFormat other = (ImageFormat) o;
-
-		return other.name.equals(name);
-
-	}
-
-	public String toString()
-	{
-		return "{" + name + ": " + extension + "}";
-	}
-
-	public int hashCode()
-	{
-		return name.hashCode();
-	}
-
-	public static final ImageFormat IMAGE_FORMAT_UNKNOWN = new ImageFormat(
-			"UNKNOWN", false);
-	public static final ImageFormat IMAGE_FORMAT_PNG = new ImageFormat("PNG");
-	public static final ImageFormat IMAGE_FORMAT_GIF = new ImageFormat("GIF");
-	public static final ImageFormat IMAGE_FORMAT_ICO = new ImageFormat("ICO");
-	public static final ImageFormat IMAGE_FORMAT_TIFF = new ImageFormat("TIFF");
-	public static final ImageFormat IMAGE_FORMAT_JPEG = new ImageFormat("JPEG");
-	public static final ImageFormat IMAGE_FORMAT_BMP = new ImageFormat("BMP");
-	public static final ImageFormat IMAGE_FORMAT_PSD = new ImageFormat("PSD");
-	public static final ImageFormat IMAGE_FORMAT_PBM = new ImageFormat("PBM");
-	public static final ImageFormat IMAGE_FORMAT_PGM = new ImageFormat("PGM");
-	public static final ImageFormat IMAGE_FORMAT_PPM = new ImageFormat("PPM");
-	public static final ImageFormat IMAGE_FORMAT_PNM = new ImageFormat("PNM");
-	public static final ImageFormat IMAGE_FORMAT_TGA = new ImageFormat("TGA");
-	public static final ImageFormat IMAGE_FORMAT_JBIG2 = new ImageFormat("JBig2");
-
-	public static final ImageFormat[] getAllFormats()
-	{
-		ImageFormat result[] = {
-				IMAGE_FORMAT_UNKNOWN, IMAGE_FORMAT_PNG, IMAGE_FORMAT_GIF,
-				IMAGE_FORMAT_TIFF, IMAGE_FORMAT_JPEG, IMAGE_FORMAT_BMP,
-				IMAGE_FORMAT_PSD, IMAGE_FORMAT_PBM, IMAGE_FORMAT_PGM,
-				IMAGE_FORMAT_PPM, IMAGE_FORMAT_PNM, IMAGE_FORMAT_TGA,
-				IMAGE_FORMAT_JBIG2,
-		};
+    public final String name;
+    public final String extension;
+    public final boolean actual;
+
+    private ImageFormat(String name, boolean actual)
+    {
+        this.name = name;
+        this.extension = name;
+        this.actual = actual;
+    }
+
+    private ImageFormat(String name)
+    {
+        this.name = name;
+        this.extension = name;
+        actual = true;
+    }
+
+    public boolean equals(Object o)
+    {
+        if (!(o instanceof ImageFormat))
+            return false;
+
+        ImageFormat other = (ImageFormat) o;
+
+        return other.name.equals(name);
+
+    }
+
+    public String toString()
+    {
+        return "{" + name + ": " + extension + "}";
+    }
+
+    public int hashCode()
+    {
+        return name.hashCode();
+    }
+
+    public static final ImageFormat IMAGE_FORMAT_UNKNOWN = new ImageFormat(
+            "UNKNOWN", false);
+    public static final ImageFormat IMAGE_FORMAT_PNG = new ImageFormat("PNG");
+    public static final ImageFormat IMAGE_FORMAT_GIF = new ImageFormat("GIF");
+    public static final ImageFormat IMAGE_FORMAT_ICO = new ImageFormat("ICO");
+    public static final ImageFormat IMAGE_FORMAT_TIFF = new ImageFormat("TIFF");
+    public static final ImageFormat IMAGE_FORMAT_JPEG = new ImageFormat("JPEG");
+    public static final ImageFormat IMAGE_FORMAT_BMP = new ImageFormat("BMP");
+    public static final ImageFormat IMAGE_FORMAT_PSD = new ImageFormat("PSD");
+    public static final ImageFormat IMAGE_FORMAT_PBM = new ImageFormat("PBM");
+    public static final ImageFormat IMAGE_FORMAT_PGM = new ImageFormat("PGM");
+    public static final ImageFormat IMAGE_FORMAT_PPM = new ImageFormat("PPM");
+    public static final ImageFormat IMAGE_FORMAT_PNM = new ImageFormat("PNM");
+    public static final ImageFormat IMAGE_FORMAT_TGA = new ImageFormat("TGA");
+    public static final ImageFormat IMAGE_FORMAT_JBIG2 = new ImageFormat("JBig2");
+
+    public static final ImageFormat[] getAllFormats()
+    {
+        ImageFormat result[] = {
+                IMAGE_FORMAT_UNKNOWN, IMAGE_FORMAT_PNG, IMAGE_FORMAT_GIF,
+                IMAGE_FORMAT_TIFF, IMAGE_FORMAT_JPEG, IMAGE_FORMAT_BMP,
+                IMAGE_FORMAT_PSD, IMAGE_FORMAT_PBM, IMAGE_FORMAT_PGM,
+                IMAGE_FORMAT_PPM, IMAGE_FORMAT_PNM, IMAGE_FORMAT_TGA,
+                IMAGE_FORMAT_JBIG2,
+        };
 
-		return result;
-	}
+        return result;
+    }
 
 }
\ No newline at end of file

Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageInfo.java
URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageInfo.java?rev=995859&r1=995858&r2=995859&view=diff
==============================================================================
--- commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageInfo.java (original)
+++ commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/ImageInfo.java Fri Sep 10 16:33:35 2010
@@ -27,348 +27,348 @@ import java.util.ArrayList;
  */
 public class ImageInfo
 {
-	private final String formatDetails; // ie version
+    private final String formatDetails; // ie version
 
-	private final int bitsPerPixel;
-	private final ArrayList comments;
+    private final int bitsPerPixel;
+    private final ArrayList comments;
 
-	private final ImageFormat format;
-	private final String formatName;
-	private final int height;
-	private final String mimeType;
-
-	private final int numberOfImages;
-	private final int physicalHeightDpi;
-	private final float physicalHeightInch;
-	private final int physicalWidthDpi;
-	private final float physicalWidthInch;
-	private final int width;
-	private final boolean isProgressive;
-	private final boolean isTransparent;
-
-	private final boolean usesPalette;
-
-	public static final int COLOR_TYPE_BW = 0;
-	public static final int COLOR_TYPE_GRAYSCALE = 1;
-	public static final int COLOR_TYPE_RGB = 2;
-	public static final int COLOR_TYPE_CMYK = 3;
-	public static final int COLOR_TYPE_OTHER = -1;
-	public static final int COLOR_TYPE_UNKNOWN = -2;
-
-	private final int colorType;
-
-	public static final String COMPRESSION_ALGORITHM_UNKNOWN = "Unknown";
-	public static final String COMPRESSION_ALGORITHM_NONE = "None";
-	public static final String COMPRESSION_ALGORITHM_LZW = "LZW";
-	public static final String COMPRESSION_ALGORITHM_PACKBITS = "PackBits";
-	public static final String COMPRESSION_ALGORITHM_JPEG = "JPEG";
-	public static final String COMPRESSION_ALGORITHM_RLE = "RLE: Run-Length Encoding";
-	public static final String COMPRESSION_ALGORITHM_PSD = "Photoshop";
-	public static final String COMPRESSION_ALGORITHM_PNG_FILTER = "PNG Filter";
-	public static final String COMPRESSION_ALGORITHM_CCITT_GROUP_3 = "CCITT Group 3 1-Dimensional Modified Huffman run-length encoding.";
-	public static final String COMPRESSION_ALGORITHM_CCITT_GROUP_4 = "CCITT Group 4";
-	public static final String COMPRESSION_ALGORITHM_CCITT_1D = "CCITT 1D";
-
-	private final String compressionAlgorithm;
-
-	public ImageInfo(String formatDetails, int bitsPerPixel,
-			ArrayList comments, ImageFormat format, String formatName,
-			int height, String mimeType, int numberOfImages,
-			int physicalHeightDpi, float physicalHeightInch,
-			int physicalWidthDpi, float physicalWidthInch, int width,
-			boolean isProgressive, boolean isTransparent, boolean usesPalette,
-			int colorType, String compressionAlgorithm)
-	{
-		this.formatDetails = formatDetails;
-
-		this.bitsPerPixel = bitsPerPixel;
-		this.comments = comments;
-
-		this.format = format;
-		this.formatName = formatName;
-		this.height = height;
-		this.mimeType = mimeType;
-
-		this.numberOfImages = numberOfImages;
-		this.physicalHeightDpi = physicalHeightDpi;
-		this.physicalHeightInch = physicalHeightInch;
-		this.physicalWidthDpi = physicalWidthDpi;
-		this.physicalWidthInch = physicalWidthInch;
-		this.width = width;
-		this.isProgressive = isProgressive;
-
-		this.isTransparent = isTransparent;
-		this.usesPalette = usesPalette;
-
-		this.colorType = colorType;
-		this.compressionAlgorithm = compressionAlgorithm;
-	}
-
-	/**
-	 * Returns the bits per pixel of the image data.
-	 */
-	public int getBitsPerPixel()
-	{
-		return bitsPerPixel;
-	}
-
-	/**
-	 * Returns a list of comments from the image file. <p/> This is mostly
-	 * obsolete.
-	 */
-	public ArrayList getComments()
-	{
-		return new ArrayList(comments);
-	}
-
-	/**
-	 * Returns the image file format, ie. ImageFormat.IMAGE_FORMAT_PNG. <p/>
-	 * Returns ImageFormat.IMAGE_FORMAT_UNKNOWN if format is unknown.
-	 * 
-	 * @return A constant defined in ImageFormat.
-	 * @see ImageFormat
-	 */
-	public ImageFormat getFormat()
-	{
-		return format;
-	}
-
-	/**
-	 * Returns a string with the name of the image file format.
-	 * 
-	 * @see #getFormat()
-	 */
-	public String getFormatName()
-	{
-		return formatName;
-	}
-
-	/**
-	 * Returns the height of the image in pixels.
-	 * 
-	 * @see #getWidth()
-	 */
-	public int getHeight()
-	{
-		return height;
-	}
-
-	/**
-	 * Returns the MIME type of the image.
-	 * 
-	 * @see #getFormat()
-	 */
-	public String getMimeType()
-	{
-		return mimeType;
-	}
-
-	/**
-	 * Returns the number of images in the file.
-	 * <p>
-	 * Applies mostly to GIF and TIFF; reading PSD/Photoshop layers is not
-	 * supported, and Jpeg/JFIF EXIF thumbnails are not included in this count.
-	 */
-	public int getNumberOfImages()
-	{
-		return numberOfImages;
-	}
-
-	/**
-	 * Returns horizontal dpi of the image, if available.
-	 * <p>
-	 * Applies to TIFF (optional), BMP (always), GIF (constant: 72), Jpeg
-	 * (optional), PNG (optional), PNM (constant: 72), PSD/Photoshop (constant:
-	 * 72).
-	 * 
-	 * @return returns -1 if not present.
-	 */
-	public int getPhysicalHeightDpi()
-	{
-		return physicalHeightDpi;
-	}
-
-	/**
-	 * Returns physical height of the image in inches, if available.
-	 * <p>
-	 * Applies to TIFF (optional), BMP (always), GIF (constant: 72), Jpeg
-	 * (optional), PNG (optional), PNM (constant: 72), PSD/Photoshop (constant:
-	 * 72).
-	 * 
-	 * @return returns -1 if not present.
-	 */
-	public float getPhysicalHeightInch()
-	{
-		return physicalHeightInch;
-	}
-
-	/**
-	 * Returns vertical dpi of the image, if available.
-	 * <p>
-	 * Applies to TIFF (optional), BMP (always), GIF (constant: 72), Jpeg
-	 * (optional), PNG (optional), PNM (constant: 72), PSD/Photoshop (constant:
-	 * 72).
-	 * 
-	 * @return returns -1 if not present.
-	 */
-	public int getPhysicalWidthDpi()
-	{
-		return physicalWidthDpi;
-	}
-
-	/**
-	 * Returns physical width of the image in inches, if available.
-	 * <p>
-	 * Applies to TIFF (optional), BMP (always), GIF (constant: 72), Jpeg
-	 * (optional), PNG (optional), PNM (constant: 72), PSD/Photoshop (constant:
-	 * 72).
-	 * 
-	 * @return returns -1 if not present.
-	 */
-	public float getPhysicalWidthInch()
-	{
-		return physicalWidthInch;
-	}
-
-	/**
-	 * Returns the width of the image in pixels.
-	 * 
-	 * @see #getHeight()
-	 */
-	public int getWidth()
-	{
-		return width;
-	}
-
-	/**
-	 * Returns true if the image is progressive or interlaced.
-	 */
-	public boolean isProgressive()
-	{
-		return isProgressive;
-	}
-
-	/**
-	 * Returns the color type of the image, as a constant (ie.
-	 * ImageFormat.COLOR_TYPE_CMYK).
-	 * 
-	 * @see #getColorTypeDescription()
-	 */
-	public int getColorType()
-	{
-		return colorType;
-	}
-
-	/**
-	 * Returns a description of the color type of the image.
-	 * 
-	 * @see #getColorType()
-	 */
-	public String getColorTypeDescription()
-	{
-		switch (colorType)
-		{
-		case COLOR_TYPE_BW:
-			return "Black and White";
-		case COLOR_TYPE_GRAYSCALE:
-			return "Grayscale";
-		case COLOR_TYPE_RGB:
-			return "RGB";
-		case COLOR_TYPE_CMYK:
-			return "CMYK";
-		case COLOR_TYPE_OTHER:
-			return "Other";
-		case COLOR_TYPE_UNKNOWN:
-			return "Unknown";
-
-		default:
-			return "Unknown";
-		}
-
-	}
-
-	public void dump()
-	{
-		System.out.print(toString());
-	}
-
-	public String toString()
-	{
-		try
-		{
-			StringWriter sw = new StringWriter();
-			PrintWriter pw = new PrintWriter(sw);
-
-			toString(pw, "");
-			pw.flush();
-
-			return sw.toString();
-		} catch (Exception e)
-		{
-			return "Image Data: Error";
-		}
-	}
-
-	public void toString(PrintWriter pw, String prefix)
-			throws ImageReadException, IOException
-	{
-		pw.println("Format Details: " + formatDetails);
-
-		pw.println("Bits Per Pixel: " + bitsPerPixel);
-		pw.println("Comments: " + comments.size());
-		for (int i = 0; i < comments.size(); i++)
-		{
-			String s = (String) comments.get(i);
-			pw.println("\t" + i + ": '" + s + "'");
-
-		}
-		pw.println("Format: " + format.name);
-		pw.println("Format Name: " + formatName);
-		pw.println("Compression Algorithm: " + compressionAlgorithm);
-		pw.println("Height: " + height);
-		pw.println("MimeType: " + mimeType);
-		pw.println("Number Of Images: " + numberOfImages);
-		pw.println("Physical Height Dpi: " + physicalHeightDpi);
-		pw.println("Physical Height Inch: " + physicalHeightInch);
-		pw.println("Physical Width Dpi: " + physicalWidthDpi);
-		pw.println("Physical Width Inch: " + physicalWidthInch);
-		pw.println("Width: " + width);
-		pw.println("Is Progressive: " + isProgressive);
-		pw.println("Is Transparent: " + isTransparent);
-
-		pw.println("Color Type: " + getColorTypeDescription());
-		pw.println("Uses Palette: " + usesPalette);
-
-		pw.flush();
-
-	}
-
-	/**
-	 * Returns a description of the file format, ie. format version.
-	 */
-	public String getFormatDetails() {
-		return formatDetails;
-	}
-
-	/**
-	 * Returns true if the image has transparency.
-	 */
-	public boolean isTransparent() {
-		return isTransparent;
-	}
-
-	/**
-	 * Returns true if the image uses a palette.
-	 */
-	public boolean usesPalette() {
-		return usesPalette;
-	}
-
-	/**
-	 * Returns a description of the compression algorithm, if any.
-	 */
-	public String getCompressionAlgorithm() {
-		return compressionAlgorithm;
-	}
+    private final ImageFormat format;
+    private final String formatName;
+    private final int height;
+    private final String mimeType;
+
+    private final int numberOfImages;
+    private final int physicalHeightDpi;
+    private final float physicalHeightInch;
+    private final int physicalWidthDpi;
+    private final float physicalWidthInch;
+    private final int width;
+    private final boolean isProgressive;
+    private final boolean isTransparent;
+
+    private final boolean usesPalette;
+
+    public static final int COLOR_TYPE_BW = 0;
+    public static final int COLOR_TYPE_GRAYSCALE = 1;
+    public static final int COLOR_TYPE_RGB = 2;
+    public static final int COLOR_TYPE_CMYK = 3;
+    public static final int COLOR_TYPE_OTHER = -1;
+    public static final int COLOR_TYPE_UNKNOWN = -2;
+
+    private final int colorType;
+
+    public static final String COMPRESSION_ALGORITHM_UNKNOWN = "Unknown";
+    public static final String COMPRESSION_ALGORITHM_NONE = "None";
+    public static final String COMPRESSION_ALGORITHM_LZW = "LZW";
+    public static final String COMPRESSION_ALGORITHM_PACKBITS = "PackBits";
+    public static final String COMPRESSION_ALGORITHM_JPEG = "JPEG";
+    public static final String COMPRESSION_ALGORITHM_RLE = "RLE: Run-Length Encoding";
+    public static final String COMPRESSION_ALGORITHM_PSD = "Photoshop";
+    public static final String COMPRESSION_ALGORITHM_PNG_FILTER = "PNG Filter";
+    public static final String COMPRESSION_ALGORITHM_CCITT_GROUP_3 = "CCITT Group 3 1-Dimensional Modified Huffman run-length encoding.";
+    public static final String COMPRESSION_ALGORITHM_CCITT_GROUP_4 = "CCITT Group 4";
+    public static final String COMPRESSION_ALGORITHM_CCITT_1D = "CCITT 1D";
+
+    private final String compressionAlgorithm;
+
+    public ImageInfo(String formatDetails, int bitsPerPixel,
+            ArrayList comments, ImageFormat format, String formatName,
+            int height, String mimeType, int numberOfImages,
+            int physicalHeightDpi, float physicalHeightInch,
+            int physicalWidthDpi, float physicalWidthInch, int width,
+            boolean isProgressive, boolean isTransparent, boolean usesPalette,
+            int colorType, String compressionAlgorithm)
+    {
+        this.formatDetails = formatDetails;
+
+        this.bitsPerPixel = bitsPerPixel;
+        this.comments = comments;
+
+        this.format = format;
+        this.formatName = formatName;
+        this.height = height;
+        this.mimeType = mimeType;
+
+        this.numberOfImages = numberOfImages;
+        this.physicalHeightDpi = physicalHeightDpi;
+        this.physicalHeightInch = physicalHeightInch;
+        this.physicalWidthDpi = physicalWidthDpi;
+        this.physicalWidthInch = physicalWidthInch;
+        this.width = width;
+        this.isProgressive = isProgressive;
+
+        this.isTransparent = isTransparent;
+        this.usesPalette = usesPalette;
+
+        this.colorType = colorType;
+        this.compressionAlgorithm = compressionAlgorithm;
+    }
+
+    /**
+     * Returns the bits per pixel of the image data.
+     */
+    public int getBitsPerPixel()
+    {
+        return bitsPerPixel;
+    }
+
+    /**
+     * Returns a list of comments from the image file. <p/> This is mostly
+     * obsolete.
+     */
+    public ArrayList getComments()
+    {
+        return new ArrayList(comments);
+    }
+
+    /**
+     * Returns the image file format, ie. ImageFormat.IMAGE_FORMAT_PNG. <p/>
+     * Returns ImageFormat.IMAGE_FORMAT_UNKNOWN if format is unknown.
+     *
+     * @return A constant defined in ImageFormat.
+     * @see ImageFormat
+     */
+    public ImageFormat getFormat()
+    {
+        return format;
+    }
+
+    /**
+     * Returns a string with the name of the image file format.
+     *
+     * @see #getFormat()
+     */
+    public String getFormatName()
+    {
+        return formatName;
+    }
+
+    /**
+     * Returns the height of the image in pixels.
+     *
+     * @see #getWidth()
+     */
+    public int getHeight()
+    {
+        return height;
+    }
+
+    /**
+     * Returns the MIME type of the image.
+     *
+     * @see #getFormat()
+     */
+    public String getMimeType()
+    {
+        return mimeType;
+    }
+
+    /**
+     * Returns the number of images in the file.
+     * <p>
+     * Applies mostly to GIF and TIFF; reading PSD/Photoshop layers is not
+     * supported, and Jpeg/JFIF EXIF thumbnails are not included in this count.
+     */
+    public int getNumberOfImages()
+    {
+        return numberOfImages;
+    }
+
+    /**
+     * Returns horizontal dpi of the image, if available.
+     * <p>
+     * Applies to TIFF (optional), BMP (always), GIF (constant: 72), Jpeg
+     * (optional), PNG (optional), PNM (constant: 72), PSD/Photoshop (constant:
+     * 72).
+     *
+     * @return returns -1 if not present.
+     */
+    public int getPhysicalHeightDpi()
+    {
+        return physicalHeightDpi;
+    }
+
+    /**
+     * Returns physical height of the image in inches, if available.
+     * <p>
+     * Applies to TIFF (optional), BMP (always), GIF (constant: 72), Jpeg
+     * (optional), PNG (optional), PNM (constant: 72), PSD/Photoshop (constant:
+     * 72).
+     *
+     * @return returns -1 if not present.
+     */
+    public float getPhysicalHeightInch()
+    {
+        return physicalHeightInch;
+    }
+
+    /**
+     * Returns vertical dpi of the image, if available.
+     * <p>
+     * Applies to TIFF (optional), BMP (always), GIF (constant: 72), Jpeg
+     * (optional), PNG (optional), PNM (constant: 72), PSD/Photoshop (constant:
+     * 72).
+     *
+     * @return returns -1 if not present.
+     */
+    public int getPhysicalWidthDpi()
+    {
+        return physicalWidthDpi;
+    }
+
+    /**
+     * Returns physical width of the image in inches, if available.
+     * <p>
+     * Applies to TIFF (optional), BMP (always), GIF (constant: 72), Jpeg
+     * (optional), PNG (optional), PNM (constant: 72), PSD/Photoshop (constant:
+     * 72).
+     *
+     * @return returns -1 if not present.
+     */
+    public float getPhysicalWidthInch()
+    {
+        return physicalWidthInch;
+    }
+
+    /**
+     * Returns the width of the image in pixels.
+     *
+     * @see #getHeight()
+     */
+    public int getWidth()
+    {
+        return width;
+    }
+
+    /**
+     * Returns true if the image is progressive or interlaced.
+     */
+    public boolean isProgressive()
+    {
+        return isProgressive;
+    }
+
+    /**
+     * Returns the color type of the image, as a constant (ie.
+     * ImageFormat.COLOR_TYPE_CMYK).
+     *
+     * @see #getColorTypeDescription()
+     */
+    public int getColorType()
+    {
+        return colorType;
+    }
+
+    /**
+     * Returns a description of the color type of the image.
+     *
+     * @see #getColorType()
+     */
+    public String getColorTypeDescription()
+    {
+        switch (colorType)
+        {
+        case COLOR_TYPE_BW:
+            return "Black and White";
+        case COLOR_TYPE_GRAYSCALE:
+            return "Grayscale";
+        case COLOR_TYPE_RGB:
+            return "RGB";
+        case COLOR_TYPE_CMYK:
+            return "CMYK";
+        case COLOR_TYPE_OTHER:
+            return "Other";
+        case COLOR_TYPE_UNKNOWN:
+            return "Unknown";
+
+        default:
+            return "Unknown";
+        }
+
+    }
+
+    public void dump()
+    {
+        System.out.print(toString());
+    }
+
+    public String toString()
+    {
+        try
+        {
+            StringWriter sw = new StringWriter();
+            PrintWriter pw = new PrintWriter(sw);
+
+            toString(pw, "");
+            pw.flush();
+
+            return sw.toString();
+        } catch (Exception e)
+        {
+            return "Image Data: Error";
+        }
+    }
+
+    public void toString(PrintWriter pw, String prefix)
+            throws ImageReadException, IOException
+    {
+        pw.println("Format Details: " + formatDetails);
+
+        pw.println("Bits Per Pixel: " + bitsPerPixel);
+        pw.println("Comments: " + comments.size());
+        for (int i = 0; i < comments.size(); i++)
+        {
+            String s = (String) comments.get(i);
+            pw.println("\t" + i + ": '" + s + "'");
+
+        }
+        pw.println("Format: " + format.name);
+        pw.println("Format Name: " + formatName);
+        pw.println("Compression Algorithm: " + compressionAlgorithm);
+        pw.println("Height: " + height);
+        pw.println("MimeType: " + mimeType);
+        pw.println("Number Of Images: " + numberOfImages);
+        pw.println("Physical Height Dpi: " + physicalHeightDpi);
+        pw.println("Physical Height Inch: " + physicalHeightInch);
+        pw.println("Physical Width Dpi: " + physicalWidthDpi);
+        pw.println("Physical Width Inch: " + physicalWidthInch);
+        pw.println("Width: " + width);
+        pw.println("Is Progressive: " + isProgressive);
+        pw.println("Is Transparent: " + isTransparent);
+
+        pw.println("Color Type: " + getColorTypeDescription());
+        pw.println("Uses Palette: " + usesPalette);
+
+        pw.flush();
+
+    }
+
+    /**
+     * Returns a description of the file format, ie. format version.
+     */
+    public String getFormatDetails() {
+        return formatDetails;
+    }
+
+    /**
+     * Returns true if the image has transparency.
+     */
+    public boolean isTransparent() {
+        return isTransparent;
+    }
+
+    /**
+     * Returns true if the image uses a palette.
+     */
+    public boolean usesPalette() {
+        return usesPalette;
+    }
+
+    /**
+     * Returns a description of the compression algorithm, if any.
+     */
+    public String getCompressionAlgorithm() {
+        return compressionAlgorithm;
+    }
 
 }
\ No newline at end of file