diff --git a/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/BMPImageReaderSpi.java b/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/BMPImageReaderSpi.java index 9d7f4817..5645fd1d 100755 --- a/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/BMPImageReaderSpi.java +++ b/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/BMPImageReaderSpi.java @@ -28,8 +28,7 @@ package com.twelvemonkeys.imageio.plugins.bmp; -import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; +import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase; import javax.imageio.ImageReader; import javax.imageio.spi.ImageReaderSpi; @@ -47,30 +46,9 @@ import java.util.Locale; * @author Harald Kuhr * @version $Id: BMPImageReaderSpi.java,v 1.0 25.feb.2006 00:29:44 haku Exp$ */ -public final class BMPImageReaderSpi extends ImageReaderSpi { +public final class BMPImageReaderSpi extends ImageReaderSpiBase { public BMPImageReaderSpi() { - this(IIOUtil.getProviderInfo(BMPImageReaderSpi.class)); - } - - private BMPImageReaderSpi(final ProviderInfo pProviderInfo) { - super( - pProviderInfo.getVendorName(), - pProviderInfo.getVersion(), - new String[]{"bmp", "BMP"}, - new String[]{"bmp", "rle"}, - new String[]{ - "image/bmp", - "image/x-bmp" -// "image/vnd.microsoft.bitmap", // TODO: Official IANA MIME - }, - "com.twelvemonkeys.imageio.plugins.bmp.BMPImageReader", - new Class[]{ImageInputStream.class}, - new String[]{"com.sun.imageio.plugins.bmp.BMPImageWriterSpi"}, // We support the same native metadata format - false, null, null, null, null, - true, - BMPMetadata.nativeMetadataFormatName, "com.sun.imageio.plugins.bmp.BMPMetadataFormat", - null, null - ); + super(new BMPProviderInfo()); } static ImageReaderSpi lookupDefaultProvider(final ServiceRegistry registry) { diff --git a/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/BMPProviderInfo.java b/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/BMPProviderInfo.java new file mode 100644 index 00000000..9afcf685 --- /dev/null +++ b/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/BMPProviderInfo.java @@ -0,0 +1,31 @@ +package com.twelvemonkeys.imageio.plugins.bmp; + +import com.twelvemonkeys.imageio.spi.ReaderWriterProviderInfo; + +/** + * BMPProviderInfo. + * + * @author Harald Kuhr + * @author last modified by $Author: harald.kuhr$ + * @version $Id: BMPProviderInfo.java,v 1.0 20/03/15 harald.kuhr Exp$ + */ +final class BMPProviderInfo extends ReaderWriterProviderInfo { + protected BMPProviderInfo() { + super( + BMPProviderInfo.class, + new String[] {"bmp", "BMP"}, + new String[] {"bmp", "rle"}, + new String[] { + "image/bmp", + "image/x-bmp" +// "image/vnd.microsoft.bitmap", // TODO: Official IANA MIME + }, + "com.twelvemonkeys.imageio.plugins.bmp.BMPImageReader", + new String[] {"com.twelvemonkeys.imageio.plugins.bmp.BMPImageReaderSpi"}, + "com.sun.imageio.plugins.bmp.BMPImageWriter", + new String[]{"com.sun.imageio.plugins.bmp.BMPImageWriterSpi"}, // We support the same native metadata format + false, null, null, null, null, + true, BMPMetadata.nativeMetadataFormatName, "com.sun.imageio.plugins.bmp.BMPMetadataFormat", null, null + ); + } +} diff --git a/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/CURImageReaderSpi.java b/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/CURImageReaderSpi.java index ea5b89f0..10e9fc81 100755 --- a/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/CURImageReaderSpi.java +++ b/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/CURImageReaderSpi.java @@ -28,11 +28,9 @@ package com.twelvemonkeys.imageio.plugins.bmp; -import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; +import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase; import javax.imageio.ImageReader; -import javax.imageio.spi.ImageReaderSpi; import javax.imageio.stream.ImageInputStream; import java.io.IOException; import java.util.Locale; @@ -43,31 +41,10 @@ import java.util.Locale; * @author Harald Kuhr * @version $Id: CURImageReaderSpi.java,v 1.0 25.feb.2006 00:29:44 haku Exp$ */ -public final class CURImageReaderSpi extends ImageReaderSpi { +public final class CURImageReaderSpi extends ImageReaderSpiBase { public CURImageReaderSpi() { - this(IIOUtil.getProviderInfo(CURImageReaderSpi.class)); - } - - private CURImageReaderSpi(final ProviderInfo pProviderInfo) { - super( - pProviderInfo.getVendorName(), - pProviderInfo.getVersion(), - new String[]{"cur", "CUR"}, - new String[]{"cur"}, - new String[]{ - "image/vnd.microsoft.cursor", // Official IANA MIME - "image/x-cursor", // Common extension MIME - "image/cursor" // Unofficial, but common - }, - "com.twelvemonkeys.imageio.plugins.bmp.CURImageReader", - new Class[] {ImageInputStream.class}, - null, - true, null, null, null, null, - true, - null, null, - null, null - ); + super(new CURProviderInfo()); } public boolean canDecodeInput(final Object pSource) throws IOException { diff --git a/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/CURProviderInfo.java b/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/CURProviderInfo.java new file mode 100644 index 00000000..45831e58 --- /dev/null +++ b/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/CURProviderInfo.java @@ -0,0 +1,30 @@ +package com.twelvemonkeys.imageio.plugins.bmp; + +import com.twelvemonkeys.imageio.spi.ReaderWriterProviderInfo; + +/** + * CURProviderInfo. + * + * @author Harald Kuhr + * @author last modified by $Author: harald.kuhr$ + * @version $Id: CURProviderInfo.java,v 1.0 20/03/15 harald.kuhr Exp$ + */ +final class CURProviderInfo extends ReaderWriterProviderInfo { + protected CURProviderInfo() { + super( + CURProviderInfo.class, + new String[]{"cur", "CUR"}, + new String[]{"cur"}, + new String[]{ + "image/vnd.microsoft.cursor", // Official IANA MIME + "image/x-cursor", // Common extension MIME + "image/cursor" // Unofficial, but common + }, + "com.twelvemonkeys.imageio.plugins.bmp.CURImageReader", + new String[] {"com.twelvemonkeys.imageio.plugins.bmp.CURImageReaderSpi"}, + null, null, + false, null, null, null, null, + true, null, null, null, null + ); + } +} diff --git a/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/ICOImageReaderSpi.java b/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/ICOImageReaderSpi.java index ed01ea59..3ef75af0 100755 --- a/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/ICOImageReaderSpi.java +++ b/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/ICOImageReaderSpi.java @@ -28,11 +28,9 @@ package com.twelvemonkeys.imageio.plugins.bmp; -import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; +import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase; import javax.imageio.ImageReader; -import javax.imageio.spi.ImageReaderSpi; import javax.imageio.stream.ImageInputStream; import java.io.IOException; import java.util.Locale; @@ -43,31 +41,10 @@ import java.util.Locale; * @author Harald Kuhr * @version $Id: ICOImageReaderSpi.java,v 1.0 25.feb.2006 00:29:44 haku Exp$ */ -public final class ICOImageReaderSpi extends ImageReaderSpi { +public final class ICOImageReaderSpi extends ImageReaderSpiBase { public ICOImageReaderSpi() { - this(IIOUtil.getProviderInfo(ICOImageReaderSpi.class)); - } - - private ICOImageReaderSpi(final ProviderInfo pProviderInfo) { - super( - pProviderInfo.getVendorName(), - pProviderInfo.getVersion(), - new String[]{"ico", "ICO"}, - new String[]{"ico"}, - new String[]{ - "image/vnd.microsoft.icon", // Official IANA MIME - "image/x-icon", // Common extension MIME - "image/ico" // Unofficial, but common - }, - "com.twelvemonkeys.imageio.plugins.bmp.ICOImageReader", - new Class[] {ImageInputStream.class}, - null, - true, null, null, null, null, - true, - null, null, - null, null - ); + super(new ICOProviderInfo()); } public boolean canDecodeInput(final Object pSource) throws IOException { diff --git a/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/ICOProviderInfo.java b/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/ICOProviderInfo.java new file mode 100644 index 00000000..c6d8fd36 --- /dev/null +++ b/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/ICOProviderInfo.java @@ -0,0 +1,30 @@ +package com.twelvemonkeys.imageio.plugins.bmp; + +import com.twelvemonkeys.imageio.spi.ReaderWriterProviderInfo; + +/** + * CURProviderInfo. + * + * @author Harald Kuhr + * @author last modified by $Author: harald.kuhr$ + * @version $Id: CURProviderInfo.java,v 1.0 20/03/15 harald.kuhr Exp$ + */ +final class ICOProviderInfo extends ReaderWriterProviderInfo { + protected ICOProviderInfo() { + super( + ICOProviderInfo.class, + new String[]{"ico", "ICO"}, + new String[]{"ico"}, + new String[]{ + "image/vnd.microsoft.icon", // Official IANA MIME + "image/x-icon", // Common extension MIME + "image/ico" // Unofficial, but common + }, + "com.twelvemonkeys.imageio.plugins.bmp.ICOImageReader", + new String[] {"com.twelvemonkeys.imageio.plugins.bmp.ICOImageReaderSpi"}, + null, null, + false, null, null, null, null, + true, null, null, null, null + ); + } +} diff --git a/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/spi/ImageReaderSpiBase.java b/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/spi/ImageReaderSpiBase.java new file mode 100644 index 00000000..1c521644 --- /dev/null +++ b/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/spi/ImageReaderSpiBase.java @@ -0,0 +1,27 @@ +package com.twelvemonkeys.imageio.spi; + +import javax.imageio.spi.ImageReaderSpi; + +/** + * ImageReaderSpiBase. + * + * @author Harald Kuhr + * @author last modified by $Author: harald.kuhr$ + * @version $Id: ImageReaderSpiBase.java,v 1.0 20/03/15 harald.kuhr Exp$ + */ +public abstract class ImageReaderSpiBase extends ImageReaderSpi { + protected ImageReaderSpiBase(final ReaderWriterProviderInfo info) { + super( + info.getVendorName(), info.getVersion(), + info.formatNames(), info.suffixes(), info.mimeTypes(), + info.readerClassName(), info.inputTypes(), + info.writerSpiClassNames(), + info.supportsStandardStreamMetadataFormat(), + info.nativeStreamMetadataFormatName(), info.nativeStreamMetadataFormatClassName(), + info.extraStreamMetadataFormatNames(), info.extraStreamMetadataFormatClassNames(), + info.supportsStandardImageMetadataFormat(), + info.nativeImageMetadataFormatName(), info.nativeImageMetadataFormatClassName(), + info.extraImageMetadataFormatNames(), info.extraImageMetadataFormatClassNames() + ); + } +} diff --git a/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/spi/ImageWriterSpiBase.java b/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/spi/ImageWriterSpiBase.java new file mode 100644 index 00000000..3989f5e8 --- /dev/null +++ b/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/spi/ImageWriterSpiBase.java @@ -0,0 +1,27 @@ +package com.twelvemonkeys.imageio.spi; + +import javax.imageio.spi.ImageWriterSpi; + +/** + * ImageWriterSpiBase. + * + * @author Harald Kuhr + * @author last modified by $Author: harald.kuhr$ + * @version $Id: ImageWriterSpiBase.java,v 1.0 20/03/15 harald.kuhr Exp$ + */ +public abstract class ImageWriterSpiBase extends ImageWriterSpi { + protected ImageWriterSpiBase(final ReaderWriterProviderInfo info) { + super( + info.getVendorName(), info.getVersion(), + info.formatNames(), info.suffixes(), info.mimeTypes(), + info.writerClassName(), info.outputTypes(), + info.readerSpiClassNames(), + info.supportsStandardStreamMetadataFormat(), + info.nativeStreamMetadataFormatName(), info.nativeStreamMetadataFormatClassName(), + info.extraStreamMetadataFormatNames(), info.extraStreamMetadataFormatClassNames(), + info.supportsStandardImageMetadataFormat(), + info.nativeImageMetadataFormatName(), info.nativeImageMetadataFormatClassName(), + info.extraImageMetadataFormatNames(), info.extraImageMetadataFormatClassNames() + ); + } +} diff --git a/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/spi/ReaderWriterProviderInfo.java b/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/spi/ReaderWriterProviderInfo.java new file mode 100644 index 00000000..3b30a3af --- /dev/null +++ b/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/spi/ReaderWriterProviderInfo.java @@ -0,0 +1,157 @@ +package com.twelvemonkeys.imageio.spi; + +import javax.imageio.stream.ImageInputStream; +import javax.imageio.stream.ImageOutputStream; + +import static com.twelvemonkeys.lang.Validate.notNull; + +/** + * ReaderWriterProviderInfo. + * + * @author Harald Kuhr + * @author last modified by $Author: harald.kuhr$ + * @version $Id: ReaderWriterProviderInfo.java,v 1.0 20/03/15 harald.kuhr Exp$ + */ +public abstract class ReaderWriterProviderInfo extends ProviderInfo { + + private final String[] formatNames; + private final String[] suffixes; + private final String[] mimeTypes; + private final String readerClassName; + private final String[] readerSpiClassNames; + private final Class[] inputTypes = new Class[] {ImageInputStream.class}; + private final String writerClassName; + private final String[] writerSpiClassNames; + private final Class[] outputTypes = new Class[] {ImageOutputStream.class}; + private final boolean supportsStandardStreamMetadata; + private final String nativeStreameMetadataFormatName; + private final String nativeStreamMetadataFormatClassName; + private final String[] extraStreamMetadataFormatNames; + private final String[] extraStreamMetadataFormatClassNames; + private final boolean supportsStandardImageMetadata; + private final String nativeImageMetadataFormatName; + private final String nativeImageMetadataFormatClassName; + private final String[] extraImageMetadataFormatNames; + private final String[] extraImageMetadataFormatClassNames; + + /** + * Creates a provider information instance based on the given class. + * + * @param infoClass the class to get provider information from. + * The provider info will be taken from the class' package. @throws IllegalArgumentException if {@code pPackage == null} + */ + protected ReaderWriterProviderInfo(final Class infoClass, + final String[] formatNames, + final String[] suffixes, + final String[] mimeTypes, + final String readerClassName, + final String[] readerSpiClassNames, + final String writerClassName, + final String[] writerSpiClassNames, + final boolean supportsStandardStreamMetadata, + final String nativeStreameMetadataFormatName, + final String nativeStreamMetadataFormatClassName, + final String[] extraStreamMetadataFormatNames, + final String[] extraStreamMetadataFormatClassNames, + final boolean supportsStandardImageMetadata, + final String nativeImageMetadataFormatName, + final String nativeImageMetadataFormatClassName, + final String[] extraImageMetadataFormatNames, + final String[] extraImageMetadataFormatClassNames) { + super(notNull(infoClass).getPackage()); + + this.formatNames = formatNames; + this.suffixes = suffixes; + this.mimeTypes = mimeTypes; + this.readerClassName = readerClassName; + this.readerSpiClassNames = readerSpiClassNames; + this.writerClassName = writerClassName; + this.writerSpiClassNames = writerSpiClassNames; + this.supportsStandardStreamMetadata = supportsStandardStreamMetadata; + this.nativeStreameMetadataFormatName = nativeStreameMetadataFormatName; + this.nativeStreamMetadataFormatClassName = nativeStreamMetadataFormatClassName; + this.extraStreamMetadataFormatNames = extraStreamMetadataFormatNames; + this.extraStreamMetadataFormatClassNames = extraStreamMetadataFormatClassNames; + this.supportsStandardImageMetadata = supportsStandardImageMetadata; + this.nativeImageMetadataFormatName = nativeImageMetadataFormatName; + this.nativeImageMetadataFormatClassName = nativeImageMetadataFormatClassName; + this.extraImageMetadataFormatNames = extraImageMetadataFormatNames; + this.extraImageMetadataFormatClassNames = extraImageMetadataFormatClassNames; + } + + public String[] formatNames() { + return formatNames; + } + + public String[] suffixes() { + return suffixes; + } + + public String[] mimeTypes() { + return mimeTypes; + } + + public String readerClassName() { + return readerClassName; + } + + public String[] readerSpiClassNames() { + return readerSpiClassNames; + } + + public Class[] inputTypes() { + return inputTypes; + } + + public String writerClassName() { + return writerClassName; + } + + public String[] writerSpiClassNames() { + return writerSpiClassNames; + } + + public Class[] outputTypes() { + return outputTypes; + } + + public boolean supportsStandardStreamMetadataFormat() { + return supportsStandardStreamMetadata; + } + + public String nativeStreamMetadataFormatName() { + return nativeStreameMetadataFormatName; + } + + public String nativeStreamMetadataFormatClassName() { + return nativeStreamMetadataFormatClassName; + } + + public String[] extraStreamMetadataFormatNames() { + return extraStreamMetadataFormatNames; + } + + public String[] extraStreamMetadataFormatClassNames() { + return extraStreamMetadataFormatClassNames; + } + + public boolean supportsStandardImageMetadataFormat() { + return supportsStandardImageMetadata; + } + + public String nativeImageMetadataFormatName() { + return nativeImageMetadataFormatName; + } + + public String nativeImageMetadataFormatClassName() { + return nativeImageMetadataFormatClassName; + } + + public String[] extraImageMetadataFormatNames() { + return extraImageMetadataFormatNames; + } + + public String[] extraImageMetadataFormatClassNames() { + return extraImageMetadataFormatClassNames; + } +} diff --git a/imageio/imageio-icns/src/main/java/com/twelvemonkeys/imageio/plugins/icns/ICNSImageReaderSpi.java b/imageio/imageio-icns/src/main/java/com/twelvemonkeys/imageio/plugins/icns/ICNSImageReaderSpi.java index 0dd66e30..d128b0b8 100644 --- a/imageio/imageio-icns/src/main/java/com/twelvemonkeys/imageio/plugins/icns/ICNSImageReaderSpi.java +++ b/imageio/imageio-icns/src/main/java/com/twelvemonkeys/imageio/plugins/icns/ICNSImageReaderSpi.java @@ -28,11 +28,9 @@ package com.twelvemonkeys.imageio.plugins.icns; -import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; +import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase; import javax.imageio.ImageReader; -import javax.imageio.spi.ImageReaderSpi; import javax.imageio.stream.ImageInputStream; import java.io.IOException; import java.util.Locale; @@ -44,28 +42,9 @@ import java.util.Locale; * @author last modified by $Author: haraldk$ * @version $Id: ICNSImageReaderSpi.java,v 1.0 25.10.11 18:41 haraldk Exp$ */ -public final class ICNSImageReaderSpi extends ImageReaderSpi{ +public final class ICNSImageReaderSpi extends ImageReaderSpiBase { public ICNSImageReaderSpi() { - this(IIOUtil.getProviderInfo(ICNSImageReaderSpi.class)); - } - - private ICNSImageReaderSpi(final ProviderInfo pProviderInfo) { - super( - pProviderInfo.getVendorName(), - pProviderInfo.getVersion(), - new String[]{"icns", "ICNS"}, - new String[]{"icns"}, - new String[]{ - "image/x-apple-icons", // Common extension MIME - }, - "com.twelvemonkeys.imageio.plugins.icns.ICNSImageReader", - new Class[] {ImageInputStream.class}, - null, - true, null, null, null, null, - true, - null, null, - null, null - ); + super(new ICNSProviderInfo()); } @Override diff --git a/imageio/imageio-icns/src/main/java/com/twelvemonkeys/imageio/plugins/icns/ICNSProviderInfo.java b/imageio/imageio-icns/src/main/java/com/twelvemonkeys/imageio/plugins/icns/ICNSProviderInfo.java new file mode 100644 index 00000000..d72ca7bb --- /dev/null +++ b/imageio/imageio-icns/src/main/java/com/twelvemonkeys/imageio/plugins/icns/ICNSProviderInfo.java @@ -0,0 +1,28 @@ +package com.twelvemonkeys.imageio.plugins.icns; + +import com.twelvemonkeys.imageio.spi.ReaderWriterProviderInfo; + +/** + * ICNSProviderInfo. + * + * @author Harald Kuhr + * @author last modified by $Author: harald.kuhr$ + * @version $Id: ICNSProviderInfo.java,v 1.0 20/03/15 harald.kuhr Exp$ + */ +final class ICNSProviderInfo extends ReaderWriterProviderInfo { + protected ICNSProviderInfo() { + super( + ICNSProviderInfo.class, + new String[]{"icns", "ICNS"}, + new String[]{"icns"}, + new String[]{ + "image/x-apple-icons", // Common extension MIME + }, + "com.twelvemonkeys.imageio.plugins.icns.ICNSImageReader", + new String[] {"com.twelvemonkeys.imageio.plugins.ics.ICNImageReaderSpi"}, + null, null, + false, null, null, null, null, + true, null, null, null, null + ); + } +} diff --git a/imageio/imageio-iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageReader.java b/imageio/imageio-iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageReader.java index 20405754..e545afcd 100755 --- a/imageio/imageio-iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageReader.java +++ b/imageio/imageio-iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageReader.java @@ -113,7 +113,7 @@ public class IFFImageReader extends ImageReaderBase { private DataInputStream byteRunStream; public IFFImageReader() { - super(IFFImageReaderSpi.sharedProvider()); + super(new IFFImageReaderSpi()); } protected IFFImageReader(ImageReaderSpi pProvider) { diff --git a/imageio/imageio-iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageReaderSpi.java b/imageio/imageio-iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageReaderSpi.java index 8b92907c..1d23b91a 100755 --- a/imageio/imageio-iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageReaderSpi.java +++ b/imageio/imageio-iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageReaderSpi.java @@ -28,11 +28,9 @@ package com.twelvemonkeys.imageio.plugins.iff; -import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; +import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase; import javax.imageio.ImageReader; -import javax.imageio.spi.ImageReaderSpi; import javax.imageio.stream.ImageInputStream; import java.io.IOException; import java.util.Locale; @@ -44,34 +42,13 @@ import java.util.Locale; * @author Harald Kuhr * @version $Id: IFFImageWriterSpi.java,v 1.0 28.feb.2006 19:21:05 haku Exp$ */ -public class IFFImageReaderSpi extends ImageReaderSpi { - - static IFFImageReaderSpi mSharedInstance; +public class IFFImageReaderSpi extends ImageReaderSpiBase { /** * Creates an {@code IFFImageReaderSpi}. */ public IFFImageReaderSpi() { - this(IIOUtil.getProviderInfo(IFFImageReaderSpi.class)); - } - - private IFFImageReaderSpi(final ProviderInfo pProviderInfo) { - super( - pProviderInfo.getVendorName(), - pProviderInfo.getVersion(), - new String[]{"iff", "IFF"}, - new String[]{"iff", "lbm", "ham", "ham8", "ilbm"}, - new String[]{"image/iff", "image/x-iff"}, - "com.twelvemonkeys.imageio.plugins.iff.IFFImageReader", - new Class[] {ImageInputStream.class}, - new String[]{"com.twelvemonkeys.imageio.plugins.iff.IFFImageWriterSpi"}, - true, null, null, null, null, - true, null, null, null, null - ); - - if (mSharedInstance == null) { - mSharedInstance = this; - } + super(new IFFProviderInfo()); } public boolean canDecodeInput(Object pSource) throws IOException { @@ -102,7 +79,6 @@ public class IFFImageReaderSpi extends ImageReaderSpi { return false; } - public ImageReader createReaderInstance(Object pExtension) throws IOException { return new IFFImageReader(this); } @@ -110,12 +86,4 @@ public class IFFImageReaderSpi extends ImageReaderSpi { public String getDescription(Locale pLocale) { return "Commodore Amiga/Electronic Arts Image Interchange Format (IFF) image reader"; } - - public static ImageReaderSpi sharedProvider() { - if (mSharedInstance == null) { - new IFFImageReaderSpi(); - } - - return mSharedInstance; - } } diff --git a/imageio/imageio-iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageWriterSpi.java b/imageio/imageio-iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageWriterSpi.java index 902a3dd9..0355c768 100755 --- a/imageio/imageio-iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageWriterSpi.java +++ b/imageio/imageio-iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageWriterSpi.java @@ -28,12 +28,10 @@ package com.twelvemonkeys.imageio.plugins.iff; -import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; +import com.twelvemonkeys.imageio.spi.ImageWriterSpiBase; import javax.imageio.ImageTypeSpecifier; import javax.imageio.ImageWriter; -import javax.imageio.spi.ImageWriterSpi; import java.io.IOException; import java.util.Locale; @@ -44,28 +42,13 @@ import java.util.Locale; * @author Harald Kuhr * @version $Id: IFFImageWriterSpi.java,v 1.0 02.mar.2006 19:21:05 haku Exp$ */ -public class IFFImageWriterSpi extends ImageWriterSpi { +public class IFFImageWriterSpi extends ImageWriterSpiBase { /** * Creates an {@code IFFImageWriterSpi}. */ public IFFImageWriterSpi() { - this(IIOUtil.getProviderInfo(IFFImageWriterSpi.class)); - } - - private IFFImageWriterSpi(final ProviderInfo pProviderInfo) { - super( - pProviderInfo.getVendorName(), - pProviderInfo.getVersion(), - new String[]{"iff", "IFF"}, - new String[]{"iff", "lbm", "ham", "ham8", "ilbm"}, - new String[]{"image/iff", "image/x-iff"}, - "com.twelvemonkeys.imageio.plugins.iff.IFFImageWriter", - STANDARD_OUTPUT_TYPE, - new String[]{"com.twelvemonkeys.imageio.plugins.iff.IFFImageReaderSpi"}, - true, null, null, null, null, - true, null, null, null, null - ); + super(new IFFProviderInfo()); } public boolean canEncodeImage(final ImageTypeSpecifier pType) { diff --git a/imageio/imageio-iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFProviderInfo.java b/imageio/imageio-iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFProviderInfo.java new file mode 100644 index 00000000..cb47612c --- /dev/null +++ b/imageio/imageio-iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFProviderInfo.java @@ -0,0 +1,27 @@ +package com.twelvemonkeys.imageio.plugins.iff; + +import com.twelvemonkeys.imageio.spi.ReaderWriterProviderInfo; + +/** + * IFFProviderInfo. + * + * @author Harald Kuhr + * @author last modified by $Author: harald.kuhr$ + * @version $Id: IFFProviderInfo.java,v 1.0 20/03/15 harald.kuhr Exp$ + */ +final class IFFProviderInfo extends ReaderWriterProviderInfo { + protected IFFProviderInfo() { + super( + IFFProviderInfo.class, + new String[] {"iff", "IFF"}, + new String[] {"iff", "lbm", "ham", "ham8", "ilbm"}, + new String[] {"image/iff", "image/x-iff"}, + "com.twelvemonkeys.imageio.plugins.iff.IFFImageReader", + new String[]{"com.twelvemonkeys.imageio.plugins.iff.IFFImageReaderSpi"}, + "com.twelvemonkeys.imageio.plugins.iff.IFFImageWriter", + new String[] {"com.twelvemonkeys.imageio.plugins.iff.IFFImageWriterSpi"}, + false, null, null, null, null, + true, null, null, null, null + ); + } +} diff --git a/imageio/imageio-pcx/src/main/java/com/twelvemonkeys/imageio/plugins/dcx/DCXProviderInfo.java b/imageio/imageio-pcx/src/main/java/com/twelvemonkeys/imageio/plugins/dcx/DCXProviderInfo.java new file mode 100644 index 00000000..264a7701 --- /dev/null +++ b/imageio/imageio-pcx/src/main/java/com/twelvemonkeys/imageio/plugins/dcx/DCXProviderInfo.java @@ -0,0 +1,33 @@ +package com.twelvemonkeys.imageio.plugins.dcx; + +import com.twelvemonkeys.imageio.spi.ReaderWriterProviderInfo; + +/** + * DCXProviderInfo. + * + * @author Harald Kuhr + * @author last modified by $Author: harald.kuhr$ + * @version $Id: DCXProviderInfo.java,v 1.0 20/03/15 harald.kuhr Exp$ + */ +final class DCXProviderInfo extends ReaderWriterProviderInfo { + protected DCXProviderInfo() { + super( + DCXProviderInfo.class, + new String[]{ + "dcx", + "DCX" + }, + new String[]{"dcx"}, + new String[]{ + // No official IANA record exists + "image/dcx", + "image/x-dcx", + }, + "com.twelvemkonkeys.imageio.plugins.dcx.DCXImageReader", + new String[] {"com.twelvemkonkeys.imageio.plugins.dcx.DCXImageReaderSpi"}, + null, null, + false, null, null, null, null, + true, null, null, null, null + ); + } +} diff --git a/imageio/imageio-pcx/src/main/java/com/twelvemonkeys/imageio/plugins/pcx/PCXImageReaderSpi.java b/imageio/imageio-pcx/src/main/java/com/twelvemonkeys/imageio/plugins/pcx/PCXImageReaderSpi.java index dfd41f09..bd3ab064 100755 --- a/imageio/imageio-pcx/src/main/java/com/twelvemonkeys/imageio/plugins/pcx/PCXImageReaderSpi.java +++ b/imageio/imageio-pcx/src/main/java/com/twelvemonkeys/imageio/plugins/pcx/PCXImageReaderSpi.java @@ -28,48 +28,20 @@ package com.twelvemonkeys.imageio.plugins.pcx; -import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; +import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase; import javax.imageio.ImageReader; -import javax.imageio.spi.ImageReaderSpi; import javax.imageio.stream.ImageInputStream; import java.io.IOException; import java.util.Locale; -public final class PCXImageReaderSpi extends ImageReaderSpi { +public final class PCXImageReaderSpi extends ImageReaderSpiBase { /** * Creates a {@code PCXImageReaderSpi}. */ public PCXImageReaderSpi() { - this(IIOUtil.getProviderInfo(PCXImageReaderSpi.class)); - } - - private PCXImageReaderSpi(final ProviderInfo providerInfo) { - super( - providerInfo.getVendorName(), - providerInfo.getVersion(), - new String[]{ - "pcx", - "PCX" - }, - new String[]{"pcx"}, - new String[]{ - // No official IANA record exists - "image/pcx", - "image/x-pcx", - }, - "com.twelvemkonkeys.imageio.plugins.pcx.PCXImageReader", - new Class[] {ImageInputStream.class}, - null, - true, // supports standard stream metadata - null, null, // native stream format name and class - null, null, // extra stream formats - true, // supports standard image metadata - null, null, - null, null // extra image metadata formats - ); + super(new PCXProviderInfo()); } @Override public boolean canDecodeInput(final Object source) throws IOException { diff --git a/imageio/imageio-pcx/src/main/java/com/twelvemonkeys/imageio/plugins/pcx/PCXProviderInfo.java b/imageio/imageio-pcx/src/main/java/com/twelvemonkeys/imageio/plugins/pcx/PCXProviderInfo.java new file mode 100644 index 00000000..e55e8c0c --- /dev/null +++ b/imageio/imageio-pcx/src/main/java/com/twelvemonkeys/imageio/plugins/pcx/PCXProviderInfo.java @@ -0,0 +1,33 @@ +package com.twelvemonkeys.imageio.plugins.pcx; + +import com.twelvemonkeys.imageio.spi.ReaderWriterProviderInfo; + +/** + * PCXProviderInfo. + * + * @author Harald Kuhr + * @author last modified by $Author: harald.kuhr$ + * @version $Id: PCXProviderInfo.java,v 1.0 20/03/15 harald.kuhr Exp$ + */ +final class PCXProviderInfo extends ReaderWriterProviderInfo { + protected PCXProviderInfo() { + super( + PCXProviderInfo.class, + new String[]{ + "pcx", + "PCX" + }, + new String[]{"pcx"}, + new String[]{ + // No official IANA record exists + "image/pcx", + "image/x-pcx", + }, + "com.twelvemkonkeys.imageio.plugins.pcx.PCXImageReader", + new String[] {"com.twelvemkonkeys.imageio.plugins.pcx.PCXImageReaderSpi"}, + null, null, + false, null, null, null, null, + true, null, null, null, null + ); + } +} diff --git a/imageio/imageio-pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTImageReaderSpi.java b/imageio/imageio-pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTImageReaderSpi.java index 76a23cab..e6323d46 100755 --- a/imageio/imageio-pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTImageReaderSpi.java +++ b/imageio/imageio-pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTImageReaderSpi.java @@ -28,11 +28,9 @@ package com.twelvemonkeys.imageio.plugins.pict; -import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; +import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase; import javax.imageio.ImageReader; -import javax.imageio.spi.ImageReaderSpi; import javax.imageio.stream.ImageInputStream; import java.io.EOFException; import java.io.IOException; @@ -45,28 +43,13 @@ import java.util.Locale; * @author Harald Kuhr * @version $Id: PICTImageReaderSpi.java,v 1.0 28.feb.2006 19:21:05 haku Exp$ */ -public class PICTImageReaderSpi extends ImageReaderSpi { +public class PICTImageReaderSpi extends ImageReaderSpiBase { /** * Creates a {@code PICTImageReaderSpi}. */ public PICTImageReaderSpi() { - this(IIOUtil.getProviderInfo(PICTImageReaderSpi.class)); - } - - private PICTImageReaderSpi(final ProviderInfo pProviderInfo) { - super( - pProviderInfo.getVendorName(), - pProviderInfo.getVersion(), - new String[]{"pct", "PCT", "pict", "PICT"}, - new String[]{"pct", "pict"}, - new String[]{"image/pict", "image/x-pict"}, - "com.twelvemkonkeys.imageio.plugins.pict.PICTImageReader", - new Class[] {ImageInputStream.class}, - new String[]{"com.twelvemkonkeys.imageio.plugins.pict.PICTImageWriterSpi"}, - true, null, null, null, null, - true, null, null, null, null - ); + super(new PICTProviderInfo()); } public boolean canDecodeInput(final Object pSource) throws IOException { diff --git a/imageio/imageio-pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTImageWriterSpi.java b/imageio/imageio-pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTImageWriterSpi.java index 75382282..86507cdb 100755 --- a/imageio/imageio-pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTImageWriterSpi.java +++ b/imageio/imageio-pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTImageWriterSpi.java @@ -28,12 +28,10 @@ package com.twelvemonkeys.imageio.plugins.pict; -import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; +import com.twelvemonkeys.imageio.spi.ImageWriterSpiBase; import javax.imageio.ImageTypeSpecifier; import javax.imageio.ImageWriter; -import javax.imageio.spi.ImageWriterSpi; import java.io.IOException; import java.util.Locale; @@ -44,29 +42,13 @@ import java.util.Locale; * @author Harald Kuhr * @version $Id: PICTImageWriterSpi.java,v 1.0 02.mar.2006 19:21:05 haku Exp$ */ -public class PICTImageWriterSpi extends ImageWriterSpi { +public class PICTImageWriterSpi extends ImageWriterSpiBase { /** * Creates a {@code PICTImageWriterSpi}. */ public PICTImageWriterSpi() { - this(IIOUtil.getProviderInfo(PICTImageWriterSpi.class)); - } - - private PICTImageWriterSpi(final ProviderInfo pProviderInfo) { - super( - pProviderInfo.getVendorName(), - pProviderInfo.getVersion(), - new String[]{"pct", "PCT", - "pict", "PICT"}, - new String[]{"pct", "pict"}, - new String[]{"image/pict", "image/x-pict"}, - "com.twelvemonkeys.imageio.plugins.pict.PICTImageWriter", - STANDARD_OUTPUT_TYPE, - new String[]{"com.twelvemonkeys.imageio.plugins.pict.PICTImageReaderSpi"}, - true, null, null, null, null, - true, null, null, null, null - ); + super(new PICTProviderInfo()); } public boolean canEncodeImage(ImageTypeSpecifier pType) { diff --git a/imageio/imageio-pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTProviderInfo.java b/imageio/imageio-pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTProviderInfo.java new file mode 100644 index 00000000..d5117e2f --- /dev/null +++ b/imageio/imageio-pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTProviderInfo.java @@ -0,0 +1,27 @@ +package com.twelvemonkeys.imageio.plugins.pict; + +import com.twelvemonkeys.imageio.spi.ReaderWriterProviderInfo; + +/** + * PICTProviderInfo. + * + * @author Harald Kuhr + * @author last modified by $Author: harald.kuhr$ + * @version $Id: PICTProviderInfo.java,v 1.0 20/03/15 harald.kuhr Exp$ + */ +final class PICTProviderInfo extends ReaderWriterProviderInfo { + protected PICTProviderInfo() { + super( + PICTProviderInfo.class, + new String[] {"pct", "PCT", "pict", "PICT"}, + new String[] {"pct", "pict"}, + new String[] {"image/pict", "image/x-pict"}, + "com.twelvemkonkeys.imageio.plugins.pict.PICTImageReader", + new String[] {"com.twelvemonkeys.imageio.plugins.pict.PICTImageReaderSpi"}, + "com.twelvemonkeys.imageio.plugins.pict.PICTImageWriter", + new String[] {"com.twelvemkonkeys.imageio.plugins.pict.PICTImageWriterSpi"}, + false, null, null, null, null, + true, null, null, null, null + ); + } +} diff --git a/imageio/imageio-pnm/src/main/java/com/twelvemonkeys/imageio/plugins/pnm/PAMImageWriterSpi.java b/imageio/imageio-pnm/src/main/java/com/twelvemonkeys/imageio/plugins/pnm/PAMImageWriterSpi.java index 10d6f9ea..51490cb1 100755 --- a/imageio/imageio-pnm/src/main/java/com/twelvemonkeys/imageio/plugins/pnm/PAMImageWriterSpi.java +++ b/imageio/imageio-pnm/src/main/java/com/twelvemonkeys/imageio/plugins/pnm/PAMImageWriterSpi.java @@ -29,7 +29,6 @@ package com.twelvemonkeys.imageio.plugins.pnm; import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; import javax.imageio.ImageTypeSpecifier; import javax.imageio.ImageWriter; @@ -43,16 +42,16 @@ public final class PAMImageWriterSpi extends ImageWriterSpi { * Creates a {@code PAMImageWriterSpi}. */ public PAMImageWriterSpi() { - this(IIOUtil.getProviderInfo(PAMImageWriterSpi.class)); + this(new PNMProviderInfo()); } private PAMImageWriterSpi(final ProviderInfo pProviderInfo) { super( pProviderInfo.getVendorName(), pProviderInfo.getVersion(), - new String[]{"pam", "PAM"}, - new String[]{"pam"}, - new String[]{ + new String[] {"pam", "PAM"}, + new String[] {"pam"}, + new String[] { // No official IANA record exists, these are conventional "image/x-portable-arbitrarymap" // PAM }, @@ -73,7 +72,8 @@ public final class PAMImageWriterSpi extends ImageWriterSpi { return new PNMImageWriter(this); } - @Override public String getDescription(final Locale locale) { + @Override + public String getDescription(final Locale locale) { return "NetPBM Portable Arbitrary Map (PAM) image writer"; } } diff --git a/imageio/imageio-pnm/src/main/java/com/twelvemonkeys/imageio/plugins/pnm/PNMImageReaderSpi.java b/imageio/imageio-pnm/src/main/java/com/twelvemonkeys/imageio/plugins/pnm/PNMImageReaderSpi.java index 967144d9..c35e64d0 100755 --- a/imageio/imageio-pnm/src/main/java/com/twelvemonkeys/imageio/plugins/pnm/PNMImageReaderSpi.java +++ b/imageio/imageio-pnm/src/main/java/com/twelvemonkeys/imageio/plugins/pnm/PNMImageReaderSpi.java @@ -29,7 +29,6 @@ package com.twelvemonkeys.imageio.plugins.pnm; import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; import javax.imageio.ImageReader; import javax.imageio.spi.ImageReaderSpi; @@ -43,19 +42,19 @@ public final class PNMImageReaderSpi extends ImageReaderSpi { * Creates a {@code PNMImageReaderSpi}. */ public PNMImageReaderSpi() { - this(IIOUtil.getProviderInfo(PNMImageReaderSpi.class)); + this(new PNMProviderInfo()); } private PNMImageReaderSpi(final ProviderInfo providerInfo) { super( providerInfo.getVendorName(), providerInfo.getVersion(), - new String[]{ - "pnm", "pbm", "pgm", "ppm", "pam", - "PNM", "PBM", "PGM", "PPM", "PAM" + new String[] { + "pnm", "pbm", "pgm", "ppm", "pam", "pfm", + "PNM", "PBM", "PGM", "PPM", "PAM", "PFM" }, - new String[]{"pbm", "pgm", "ppm", "pam"}, - new String[]{ + new String[] {"pbm", "pgm", "ppm", "pam", "pfm"}, + new String[] { // No official IANA record exists, these are conventional "image/x-portable-pixmap", "image/x-portable-anymap", @@ -63,7 +62,7 @@ public final class PNMImageReaderSpi extends ImageReaderSpi { }, "com.twelvemkonkeys.imageio.plugins.pnm.PNMImageReader", new Class[] {ImageInputStream.class}, - new String[]{ + new String[] { "com.twelvemkonkeys.imageio.plugins.pnm.PNMImageWriterSpi", "com.twelvemkonkeys.imageio.plugins.pnm.PAMImageWriterSpi" }, @@ -76,7 +75,8 @@ public final class PNMImageReaderSpi extends ImageReaderSpi { ); } - @Override public boolean canDecodeInput(final Object source) throws IOException { + @Override + public boolean canDecodeInput(final Object source) throws IOException { if (!(source instanceof ImageInputStream)) { return false; } @@ -109,11 +109,13 @@ public final class PNMImageReaderSpi extends ImageReaderSpi { } } - @Override public ImageReader createReaderInstance(final Object extension) throws IOException { + @Override + public ImageReader createReaderInstance(final Object extension) throws IOException { return new PNMImageReader(this); } - @Override public String getDescription(final Locale locale) { + @Override + public String getDescription(final Locale locale) { return "NetPBM Portable Any Map (PNM and PAM) image reader"; } } diff --git a/imageio/imageio-pnm/src/main/java/com/twelvemonkeys/imageio/plugins/pnm/PNMImageWriterSpi.java b/imageio/imageio-pnm/src/main/java/com/twelvemonkeys/imageio/plugins/pnm/PNMImageWriterSpi.java index 287e6039..5a7522c0 100755 --- a/imageio/imageio-pnm/src/main/java/com/twelvemonkeys/imageio/plugins/pnm/PNMImageWriterSpi.java +++ b/imageio/imageio-pnm/src/main/java/com/twelvemonkeys/imageio/plugins/pnm/PNMImageWriterSpi.java @@ -29,7 +29,6 @@ package com.twelvemonkeys.imageio.plugins.pnm; import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; import javax.imageio.ImageTypeSpecifier; import javax.imageio.ImageWriter; @@ -41,23 +40,24 @@ public final class PNMImageWriterSpi extends ImageWriterSpi { // TODO: Consider one Spi for each sub-format, as it makes no sense for the writer to write PPM if client code requested PBM or PGM format. // ...Then again, what if user asks for PNM? :-P + /** * Creates a {@code PNMImageWriterSpi}. */ public PNMImageWriterSpi() { - this(IIOUtil.getProviderInfo(PNMImageWriterSpi.class)); + this(new PNMProviderInfo()); } private PNMImageWriterSpi(final ProviderInfo pProviderInfo) { super( pProviderInfo.getVendorName(), pProviderInfo.getVersion(), - new String[]{ + new String[] { "pnm", "pbm", "pgm", "ppm", "PNM", "PBM", "PGM", "PPM" }, - new String[]{"pbm", "pgm", "ppm"}, - new String[]{ + new String[] {"pbm", "pgm", "ppm"}, + new String[] { // No official IANA record exists, these are conventional "image/x-portable-pixmap", "image/x-portable-anymap" @@ -79,7 +79,8 @@ public final class PNMImageWriterSpi extends ImageWriterSpi { return new PNMImageWriter(this); } - @Override public String getDescription(final Locale locale) { + @Override + public String getDescription(final Locale locale) { return "NetPBM Portable Any Map (PNM) image writer"; } } diff --git a/imageio/imageio-pnm/src/main/java/com/twelvemonkeys/imageio/plugins/pnm/PNMProviderInfo.java b/imageio/imageio-pnm/src/main/java/com/twelvemonkeys/imageio/plugins/pnm/PNMProviderInfo.java new file mode 100644 index 00000000..15eb1d8f --- /dev/null +++ b/imageio/imageio-pnm/src/main/java/com/twelvemonkeys/imageio/plugins/pnm/PNMProviderInfo.java @@ -0,0 +1,19 @@ +package com.twelvemonkeys.imageio.plugins.pnm; + +import com.twelvemonkeys.imageio.spi.ProviderInfo; + +/** + * PNMProviderInfo. + * + * @author Harald Kuhr + * @author last modified by $Author: harald.kuhr$ + * @version $Id: PNMProviderInfo.java,v 1.0 20/03/15 harald.kuhr Exp$ + */ +class PNMProviderInfo extends ProviderInfo { + // NOTE: Because the ReaderSpi and the two WriterSpis supports different formats, + // we don't use the standard ImageReaderWriterProviderInfo superclass here. + + public PNMProviderInfo() { + super(PNMProviderInfo.class.getPackage()); + } +} diff --git a/imageio/imageio-psd/src/main/java/com/twelvemonkeys/imageio/plugins/psd/PSDImageReaderSpi.java b/imageio/imageio-psd/src/main/java/com/twelvemonkeys/imageio/plugins/psd/PSDImageReaderSpi.java index 831d08dc..35e6f5d3 100755 --- a/imageio/imageio-psd/src/main/java/com/twelvemonkeys/imageio/plugins/psd/PSDImageReaderSpi.java +++ b/imageio/imageio-psd/src/main/java/com/twelvemonkeys/imageio/plugins/psd/PSDImageReaderSpi.java @@ -28,11 +28,9 @@ package com.twelvemonkeys.imageio.plugins.psd; -import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; +import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase; import javax.imageio.ImageReader; -import javax.imageio.spi.ImageReaderSpi; import javax.imageio.stream.ImageInputStream; import java.io.IOException; import java.util.Locale; @@ -44,39 +42,13 @@ import java.util.Locale; * @author last modified by $Author: haraldk$ * @version $Id: PSDImageReaderSpi.java,v 1.0 Apr 29, 2008 4:49:03 PM haraldk Exp$ */ -final public class PSDImageReaderSpi extends ImageReaderSpi { +final public class PSDImageReaderSpi extends ImageReaderSpiBase { /** * Creates a {@code PSDImageReaderSpi}. */ public PSDImageReaderSpi() { - this(IIOUtil.getProviderInfo(PSDImageReaderSpi.class)); - } - - private PSDImageReaderSpi(final ProviderInfo providerInfo) { - super( - providerInfo.getVendorName(), - providerInfo.getVersion(), - new String[] {"psd", "PSD"}, - new String[] {"psd"}, - new String[] { - "image/vnd.adobe.photoshop", // Official, IANA registered - "application/vnd.adobe.photoshop", // Used in XMP - "image/x-psd", - "application/x-photoshop", - "image/x-photoshop" - }, - "com.twelvemkonkeys.imageio.plugins.psd.PSDImageReader", - new Class[] {ImageInputStream.class}, -// new String[] {"com.twelvemkonkeys.imageio.plugins.psd.PSDImageWriterSpi"}, - null, - true, // supports standard stream metadata - null, null, // native stream format name and class - null, null, // extra stream formats - true, // supports standard image metadata - PSDMetadata.NATIVE_METADATA_FORMAT_NAME, PSDMetadata.NATIVE_METADATA_FORMAT_CLASS_NAME, - null, null // extra image metadata formats - ); + super(new PSDProviderInfo()); } public boolean canDecodeInput(final Object pSource) throws IOException { diff --git a/imageio/imageio-psd/src/main/java/com/twelvemonkeys/imageio/plugins/psd/PSDProviderInfo.java b/imageio/imageio-psd/src/main/java/com/twelvemonkeys/imageio/plugins/psd/PSDProviderInfo.java new file mode 100644 index 00000000..2b52c770 --- /dev/null +++ b/imageio/imageio-psd/src/main/java/com/twelvemonkeys/imageio/plugins/psd/PSDProviderInfo.java @@ -0,0 +1,33 @@ +package com.twelvemonkeys.imageio.plugins.psd; + +import com.twelvemonkeys.imageio.spi.ReaderWriterProviderInfo; + +/** + * PSDProviderInfo. + * + * @author Harald Kuhr + * @author last modified by $Author: harald.kuhr$ + * @version $Id: PSDProviderInfo.java,v 1.0 20/03/15 harald.kuhr Exp$ + */ +final class PSDProviderInfo extends ReaderWriterProviderInfo { + protected PSDProviderInfo() { + super( + PSDProviderInfo.class, + new String[] {"psd", "PSD"}, + new String[] {"psd"}, + new String[] { + "image/vnd.adobe.photoshop", // Official, IANA registered + "application/vnd.adobe.photoshop", // Used in XMP + "image/x-psd", + "application/x-photoshop", + "image/x-photoshop" + }, + "com.twelvemkonkeys.imageio.plugins.psd.PSDImageReader", + new String[] {"com.twelvemonkeys.imageio.plugins.psd.PSDImageReaderSpi"}, + null, + null, // new String[] {"com.twelvemkonkeys.imageio.plugins.psd.PSDImageWriterSpi"}, + false, null, null, null, null, + true, PSDMetadata.NATIVE_METADATA_FORMAT_NAME, PSDMetadata.NATIVE_METADATA_FORMAT_CLASS_NAME, null, null + ); + } +} diff --git a/imageio/imageio-sgi/src/main/java/com/twelvemonkeys/imageio/plugins/sgi/SGIImageReaderSpi.java b/imageio/imageio-sgi/src/main/java/com/twelvemonkeys/imageio/plugins/sgi/SGIImageReaderSpi.java index 5d72062b..1aa9436e 100755 --- a/imageio/imageio-sgi/src/main/java/com/twelvemonkeys/imageio/plugins/sgi/SGIImageReaderSpi.java +++ b/imageio/imageio-sgi/src/main/java/com/twelvemonkeys/imageio/plugins/sgi/SGIImageReaderSpi.java @@ -28,48 +28,20 @@ package com.twelvemonkeys.imageio.plugins.sgi; -import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; +import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase; import javax.imageio.ImageReader; -import javax.imageio.spi.ImageReaderSpi; import javax.imageio.stream.ImageInputStream; import java.io.IOException; import java.util.Locale; -public final class SGIImageReaderSpi extends ImageReaderSpi { +public final class SGIImageReaderSpi extends ImageReaderSpiBase { /** * Creates a {@code SGIImageReaderSpi}. */ public SGIImageReaderSpi() { - this(IIOUtil.getProviderInfo(SGIImageReaderSpi.class)); - } - - private SGIImageReaderSpi(final ProviderInfo providerInfo) { - super( - providerInfo.getVendorName(), - providerInfo.getVersion(), - new String[]{ - "sgi", - "SGI" - }, - new String[]{"sgi"}, - new String[]{ - // No official IANA record exists - "image/sgi", - "image/x-sgi", - }, - "com.twelvemkonkeys.imageio.plugins.sgi.SGIImageReader", - new Class[] {ImageInputStream.class}, - null, - true, // supports standard stream metadata - null, null, // native stream format name and class - null, null, // extra stream formats - true, // supports standard image metadata - null, null, - null, null // extra image metadata formats - ); + super(new SGIProviderInfo()); } @Override public boolean canDecodeInput(final Object source) throws IOException { diff --git a/imageio/imageio-sgi/src/main/java/com/twelvemonkeys/imageio/plugins/sgi/SGIProviderInfo.java b/imageio/imageio-sgi/src/main/java/com/twelvemonkeys/imageio/plugins/sgi/SGIProviderInfo.java new file mode 100644 index 00000000..bcfd503b --- /dev/null +++ b/imageio/imageio-sgi/src/main/java/com/twelvemonkeys/imageio/plugins/sgi/SGIProviderInfo.java @@ -0,0 +1,34 @@ +package com.twelvemonkeys.imageio.plugins.sgi; + +import com.twelvemonkeys.imageio.spi.ReaderWriterProviderInfo; + +/** + * SGIProviderInfo. + * + * @author Harald Kuhr + * @author last modified by $Author: harald.kuhr$ + * @version $Id: SGIProviderInfo.java,v 1.0 20/03/15 harald.kuhr Exp$ + */ +final class SGIProviderInfo extends ReaderWriterProviderInfo { + protected SGIProviderInfo() { + super( + SGIProviderInfo.class, + new String[] { + "sgi", + "SGI" + }, + new String[] {"sgi"}, + new String[] { + // No official IANA record exists + "image/sgi", + "image/x-sgi", + }, + "com.twelvemkonkeys.imageio.plugins.sgi.SGIImageReader", + new String[] {"com.twelvemonkeys.imageio.plugins.sgi.SGIImageReaderSpi"}, + null, + null, + false, null, null, null, null, + true, null, null, null, null + ); + } +} diff --git a/imageio/imageio-tga/src/main/java/com/twelvemonkeys/imageio/plugins/tga/TGAImageReaderSpi.java b/imageio/imageio-tga/src/main/java/com/twelvemonkeys/imageio/plugins/tga/TGAImageReaderSpi.java index 57ca4808..2948915a 100755 --- a/imageio/imageio-tga/src/main/java/com/twelvemonkeys/imageio/plugins/tga/TGAImageReaderSpi.java +++ b/imageio/imageio-tga/src/main/java/com/twelvemonkeys/imageio/plugins/tga/TGAImageReaderSpi.java @@ -28,49 +28,21 @@ package com.twelvemonkeys.imageio.plugins.tga; -import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; +import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase; import javax.imageio.ImageReader; -import javax.imageio.spi.ImageReaderSpi; import javax.imageio.stream.ImageInputStream; import java.io.IOException; import java.nio.ByteOrder; import java.util.Locale; -public final class TGAImageReaderSpi extends ImageReaderSpi { +public final class TGAImageReaderSpi extends ImageReaderSpiBase { /** * Creates a {@code TGAImageReaderSpi}. */ public TGAImageReaderSpi() { - this(IIOUtil.getProviderInfo(TGAImageReaderSpi.class)); - } - - private TGAImageReaderSpi(final ProviderInfo providerInfo) { - super( - providerInfo.getVendorName(), - providerInfo.getVersion(), - new String[]{ - "tga", "TGA", - "targa", "TARGA" - }, - new String[]{"tga", "tpic"}, - new String[]{ - // No official IANA record exists - "image/tga", "image/x-tga", - "image/targa", "image/x-targa", - }, - "com.twelvemkonkeys.imageio.plugins.tga.TGAImageReader", - new Class[] {ImageInputStream.class}, - null, - true, // supports standard stream metadata - null, null, // native stream format name and class - null, null, // extra stream formats - true, // supports standard image metadata - null, null, - null, null // extra image metadata formats - ); + super(new TGAProviderInfo()); } @Override public boolean canDecodeInput(final Object source) throws IOException { diff --git a/imageio/imageio-tga/src/main/java/com/twelvemonkeys/imageio/plugins/tga/TGAProviderInfo.java b/imageio/imageio-tga/src/main/java/com/twelvemonkeys/imageio/plugins/tga/TGAProviderInfo.java new file mode 100644 index 00000000..c48d47e2 --- /dev/null +++ b/imageio/imageio-tga/src/main/java/com/twelvemonkeys/imageio/plugins/tga/TGAProviderInfo.java @@ -0,0 +1,34 @@ +package com.twelvemonkeys.imageio.plugins.tga; + +import com.twelvemonkeys.imageio.spi.ReaderWriterProviderInfo; + +/** + * SGIProviderInfo. + * + * @author Harald Kuhr + * @author last modified by $Author: harald.kuhr$ + * @version $Id: SGIProviderInfo.java,v 1.0 20/03/15 harald.kuhr Exp$ + */ +final class TGAProviderInfo extends ReaderWriterProviderInfo { + protected TGAProviderInfo() { + super( + TGAProviderInfo.class, + new String[]{ + "tga", "TGA", + "targa", "TARGA" + }, + new String[]{"tga", "tpic"}, + new String[]{ + // No official IANA record exists + "image/tga", "image/x-tga", + "image/targa", "image/x-targa", + }, + "com.twelvemkonkeys.imageio.plugins.tga.TGAImageReader", + new String[] {"com.twelvemonkeys.imageio.plugins.tga.TGAImageReaderSpi"}, + null, + null, + false, null, null, null, null, + true, null, null, null, null + ); + } +} diff --git a/imageio/imageio-thumbsdb/src/main/java/com/twelvemonkeys/imageio/plugins/thumbsdb/ThumbsDBImageReaderSpi.java b/imageio/imageio-thumbsdb/src/main/java/com/twelvemonkeys/imageio/plugins/thumbsdb/ThumbsDBImageReaderSpi.java index a8ad5fb2..89c474ae 100755 --- a/imageio/imageio-thumbsdb/src/main/java/com/twelvemonkeys/imageio/plugins/thumbsdb/ThumbsDBImageReaderSpi.java +++ b/imageio/imageio-thumbsdb/src/main/java/com/twelvemonkeys/imageio/plugins/thumbsdb/ThumbsDBImageReaderSpi.java @@ -28,8 +28,7 @@ package com.twelvemonkeys.imageio.plugins.thumbsdb; -import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; +import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase; import com.twelvemonkeys.io.ole2.CompoundDocument; import javax.imageio.ImageReader; @@ -48,36 +47,21 @@ import java.util.Locale; * @author Harald Kuhr * @version $Id: ThumbsDBImageReaderSpi.java,v 1.0 28.feb.2006 19:21:05 haku Exp$ */ -public class ThumbsDBImageReaderSpi extends ImageReaderSpi { +public class ThumbsDBImageReaderSpi extends ImageReaderSpiBase { private ImageReaderSpi jpegProvider; /** * Creates a {@code ThumbsDBImageReaderSpi}. */ public ThumbsDBImageReaderSpi() { - this(IIOUtil.getProviderInfo(ThumbsDBImageReaderSpi.class)); - } - - private ThumbsDBImageReaderSpi(final ProviderInfo pProviderInfo) { - super( - pProviderInfo.getVendorName(), - pProviderInfo.getVersion(), - new String[]{"thumbs", "THUMBS", "Thumbs DB"}, - new String[]{"db"}, - new String[]{"image/x-thumbs-db", "application/octet-stream"}, // TODO: Check IANA et al... - "com.twelvemonkeys.imageio.plugins.thumbsdb.ThumbsDBImageReader", - new Class[] {ImageInputStream.class}, - null, - true, null, null, null, null, - true, null, null, null, null - ); + super(new ThumbsDBProviderInfo()); } public boolean canDecodeInput(Object source) throws IOException { return source instanceof ImageInputStream && canDecode((ImageInputStream) source); } - public boolean canDecode(ImageInputStream pInput) throws IOException { + public boolean canDecode(final ImageInputStream pInput) throws IOException { maybeInitJPEGProvider(); // If this is a OLE 2 CompoundDocument, we could try... // TODO: How do we know it's thumbs.db format (structure), without reading quite a lot? diff --git a/imageio/imageio-thumbsdb/src/main/java/com/twelvemonkeys/imageio/plugins/thumbsdb/ThumbsDBProviderInfo.java b/imageio/imageio-thumbsdb/src/main/java/com/twelvemonkeys/imageio/plugins/thumbsdb/ThumbsDBProviderInfo.java new file mode 100644 index 00000000..861dab33 --- /dev/null +++ b/imageio/imageio-thumbsdb/src/main/java/com/twelvemonkeys/imageio/plugins/thumbsdb/ThumbsDBProviderInfo.java @@ -0,0 +1,27 @@ +package com.twelvemonkeys.imageio.plugins.thumbsdb; + +import com.twelvemonkeys.imageio.spi.ReaderWriterProviderInfo; + +/** + * ThumbsDBProviderInfo. + * + * @author Harald Kuhr + * @author last modified by $Author: harald.kuhr$ + * @version $Id: ThumbsDBProviderInfo.java,v 1.0 20/03/15 harald.kuhr Exp$ + */ +final class ThumbsDBProviderInfo extends ReaderWriterProviderInfo { + protected ThumbsDBProviderInfo() { + super( + ThumbsDBProviderInfo.class, + new String[]{"thumbs", "THUMBS", "Thumbs DB"}, + new String[]{"db"}, + new String[]{"image/x-thumbs-db", "application/octet-stream"}, // TODO: Check IANA et al... + "com.twelvemonkeys.imageio.plugins.thumbsdb.ThumbsDBImageReader", + new String[] {"com.twelvemonkeys.imageio.plugins.thumbsdb.ThumbsDBImageReaderSpi"}, + null, + null, + false, null, null, null, null, + true, null, null, null, null + ); + } +} diff --git a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderSpi.java b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderSpi.java index 5a74e5de..989f1166 100644 --- a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderSpi.java +++ b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderSpi.java @@ -29,8 +29,7 @@ package com.twelvemonkeys.imageio.plugins.tiff; import com.twelvemonkeys.imageio.metadata.exif.TIFF; -import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; +import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase; import javax.imageio.spi.ImageReaderSpi; import javax.imageio.spi.ServiceRegistry; @@ -46,33 +45,12 @@ import java.util.Locale; * @author last modified by $Author: haraldk$ * @version $Id: TIFFImageReaderSpi.java,v 1.0 08.05.12 15:14 haraldk Exp$ */ -public class TIFFImageReaderSpi extends ImageReaderSpi { +public class TIFFImageReaderSpi extends ImageReaderSpiBase { /** * Creates a {@code TIFFImageReaderSpi}. */ public TIFFImageReaderSpi() { - this(IIOUtil.getProviderInfo(TIFFImageReaderSpi.class)); - } - - private TIFFImageReaderSpi(final ProviderInfo providerInfo) { - super( - providerInfo.getVendorName(), - providerInfo.getVersion(), - new String[] {"tiff", "TIFF"}, - new String[] {"tif", "tiff"}, - new String[] { - "image/tiff", "image/x-tiff" - }, - "com.twelvemkonkeys.imageio.plugins.tiff.TIFFImageReader", - new Class[] {ImageInputStream.class}, - new String[] {"com.twelvemkonkeys.imageio.plugins.tif.TIFFImageWriterSpi"}, - true, // supports standard stream metadata - null, null, // native stream format name and class - null, null, // extra stream formats - true, // supports standard image metadata - null, null, - null, null // extra image metadata formats - ); + super(new TIFFProviderInfo()); } @SuppressWarnings("unchecked") diff --git a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageWriterSpi.java b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageWriterSpi.java index 5bb96699..7d85e568 100644 --- a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageWriterSpi.java +++ b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageWriterSpi.java @@ -28,13 +28,10 @@ package com.twelvemonkeys.imageio.plugins.tiff; -import com.twelvemonkeys.imageio.spi.ProviderInfo; -import com.twelvemonkeys.imageio.util.IIOUtil; +import com.twelvemonkeys.imageio.spi.ImageWriterSpiBase; import javax.imageio.ImageTypeSpecifier; import javax.imageio.ImageWriter; -import javax.imageio.spi.ImageWriterSpi; -import javax.imageio.stream.ImageOutputStream; import java.io.IOException; import java.util.Locale; @@ -45,45 +42,27 @@ import java.util.Locale; * @author last modified by $Author: haraldk$ * @version $Id: TIFFImageWriterSpi.java,v 1.0 18.09.13 12:46 haraldk Exp$ */ -public final class TIFFImageWriterSpi extends ImageWriterSpi { +public final class TIFFImageWriterSpi extends ImageWriterSpiBase { // TODO: Implement canEncodeImage better public TIFFImageWriterSpi() { - this(IIOUtil.getProviderInfo(TIFFImageWriterSpi.class)); - } - - private TIFFImageWriterSpi(final ProviderInfo providerInfo) { - super( - providerInfo.getVendorName(), providerInfo.getVersion(), - new String[] {"tiff", "TIFF", "tif", "TIFF"}, - new String[] {"tif", "tiff"}, - new String[] {"image/tiff", "image/x-tiff"}, - "com.twelvemonkeys.imageio.plugins.tiff.TIFFImageWriter", - new Class[] {ImageOutputStream.class}, - new String[] {"com.twelvemonkeys.imageio.plugins.tiff.TIFFImageReaderSpi"}, - true, // supports standard stream metadata - null, null, // native stream format name and class - null, null, // extra stream formats - true, // supports standard image metadata - null, null, - null, null // extra image metadata formats - ); + super(new TIFFProviderInfo()); } @Override - public boolean canEncodeImage(ImageTypeSpecifier type) { + public boolean canEncodeImage(final ImageTypeSpecifier type) { // TODO: Test bit depths compatibility return true; } @Override - public ImageWriter createWriterInstance(Object extension) throws IOException { + public ImageWriter createWriterInstance(final Object extension) throws IOException { return new TIFFImageWriter(this); } @Override - public String getDescription(Locale locale) { + public String getDescription(final Locale locale) { return "Aldus/Adobe Tagged Image File Format (TIFF) image writer"; } } diff --git a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFProviderInfo.java b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFProviderInfo.java new file mode 100644 index 00000000..c1e24e58 --- /dev/null +++ b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFProviderInfo.java @@ -0,0 +1,29 @@ +package com.twelvemonkeys.imageio.plugins.tiff; + +import com.twelvemonkeys.imageio.spi.ReaderWriterProviderInfo; + +/** + * TIFFProviderInfo. + * + * @author Harald Kuhr + * @author last modified by $Author: harald.kuhr$ + * @version $Id: TIFFProviderInfo.java,v 1.0 20/03/15 harald.kuhr Exp$ + */ +final class TIFFProviderInfo extends ReaderWriterProviderInfo { + protected TIFFProviderInfo() { + super( + TIFFProviderInfo.class, + new String[] {"tiff", "TIFF"}, + new String[] {"tif", "tiff"}, + new String[] { + "image/tiff", "image/x-tiff" + }, + "com.twelvemkonkeys.imageio.plugins.tiff.TIFFImageReader", + new String[] {"com.twelvemonkeys.imageio.plugins.tiff.TIFFImageReaderSpi"}, + "com.twelvemonkeys.imageio.plugins.tiff.TIFFImageWriter", + new String[] {"com.twelvemkonkeys.imageio.plugins.tif.TIFFImageWriterSpi"}, + false, null, null, null, null, + true, null, null, null, null + ); + } +}