1:
37:
38: package ;
39:
40: import ;
41:
42: import ;
43: import ;
44: import ;
45: import ;
46: import ;
47: import ;
48:
49: public class GIFImageReaderSpi extends ImageReaderSpi
50: {
51: static final String vendorName = "GNU";
52: static final String version = "0.1";
53: static final String readerClassName =
54: "gnu.javax.imageio.gif.GIFImageReader";
55: static final String[] names = { "Compuserve GIF" };
56: static final String[] suffixes = { ".gif" };
57: static final String[] MIMETypes = {
58: "image/gif",
59: "image/x-gif"};
60: static final String[] writerSpiNames = null;
61: static final boolean supportsStandardStreamMetadataFormat = false;
62: static final String nativeStreamMetadataFormatName = null;
63: static final String nativeStreamMetadataFormatClassName = null;
64: static final String[] extraStreamMetadataFormatNames = null;
65: static final String[] extraStreamMetadataFormatClassNames = null;
66: static final boolean supportsStandardImageMetadataFormat = false;
67: static final String nativeImageMetadataFormatName = null;
68: static final String nativeImageMetadataFormatClassName = null;
69: static final String[] extraImageMetadataFormatNames = null;
70: static final String[] extraImageMetadataFormatClassNames = null;
71:
72: public GIFImageReaderSpi()
73: {
74: super(vendorName, version,
75: names, suffixes, MIMETypes,
76: readerClassName,
77: new Class[]{ ImageInputStream.class, InputStream.class },
78: writerSpiNames,
79: supportsStandardStreamMetadataFormat,
80: nativeStreamMetadataFormatName,
81: nativeStreamMetadataFormatClassName,
82: extraStreamMetadataFormatNames,
83: extraStreamMetadataFormatClassNames,
84: supportsStandardImageMetadataFormat,
85: nativeImageMetadataFormatName,
86: nativeImageMetadataFormatClassName,
87: extraImageMetadataFormatNames,
88: extraImageMetadataFormatClassNames);
89: }
90:
91: public String getDescription(Locale locale)
92: {
93: return "Compuserve GIF";
94: }
95:
96: public boolean canDecodeInput(Object input)
97: throws IOException
98: {
99: if( input == null )
100: throw new IllegalArgumentException("Input object cannot be null.");
101:
102: if( !(input instanceof ImageInputStream) &&
103: !(input instanceof InputStream))
104: return false;
105:
106: boolean retval;
107: InputStream in;
108: if( input instanceof ImageInputStream )
109: in = new IIOInputStream( (ImageInputStream)input );
110: else
111: in = (InputStream)input;
112:
113: in.mark(10);
114: retval = GIFFile.readSignature( in );
115: in.reset();
116:
117: return retval;
118: }
119:
120: public ImageReader createReaderInstance(Object extension)
121: {
122: return new GIFImageReader(this);
123: }
124: }