1:
37:
38: package ;
39:
40: import ;
41: import ;
42: import ;
43: import ;
44: import ;
45: import ;
46:
47: public class JPEGImageReaderSpi extends ImageReaderSpi
48: {
49: static final String vendorName = "GNU";
50: static final String version = "0.1";
51: static final String readerClassName =
52: "gnu.javax.imageio.jpeg.JPEGImageReader";
53: static final String[] names = { "JPEG" };
54: static final String[] suffixes = { ".jpeg", ".jpg", ".jpe" };
55: static final String[] MIMETypes = { "image/jpeg" };
56: static final String[] writerSpiNames =
57: { "gnu.javax.imageio.jpeg.JPEGImageWriterSpi" };
58:
59: static final boolean supportsStandardStreamMetadataFormat = false;
60: static final String nativeStreamMetadataFormatName = null;
61: static final String nativeStreamMetadataFormatClassName = null;
62: static final String[] extraStreamMetadataFormatNames = null;
63: static final String[] extraStreamMetadataFormatClassNames = null;
64: static final boolean supportsStandardImageMetadataFormat = false;
65: static final String nativeImageMetadataFormatName = null;
66: static final String nativeImageMetadataFormatClassName = null;
67: static final String[] extraImageMetadataFormatNames = null;
68: static final String[] extraImageMetadataFormatClassNames = null;
69:
70: private static JPEGImageReaderSpi readerSpi;
71:
72: public JPEGImageReaderSpi()
73: {
74: super(vendorName, version,
75: names, suffixes, MIMETypes,
76: readerClassName,
77: STANDARD_INPUT_TYPE,
78: writerSpiNames,
79: supportsStandardStreamMetadataFormat,
80: nativeStreamMetadataFormatName,
81: nativeStreamMetadataFormatClassName,
82: extraStreamMetadataFormatNames,
83: extraStreamMetadataFormatClassNames,
84: supportsStandardImageMetadataFormat,
85: nativeImageMetadataFormatName,
86: nativeImageMetadataFormatClassName,
87: extraImageMetadataFormatNames,
88: extraImageMetadataFormatClassNames);
89: System.out.println ("JPEGImageReaderSPI!!!");
90: }
91:
92: public String getDescription(Locale locale)
93: {
94: return "JPEG ISO 10918-1, JFIF V1.02";
95: }
96:
97: public boolean canDecodeInput(Object input)
98: throws IOException
99: {
100: if (!(input instanceof ImageInputStream))
101: return false;
102:
103: ImageInputStream in = (ImageInputStream) input;
104: boolean retval;
105:
106: in.mark();
107: try
108: {
109: new JPEGDecoder(in);
110: retval = true;
111: }
112: catch(JPEGException e)
113: {
114: retval = false;
115: }
116: in.reset();
117:
118: return retval;
119: }
120:
121: public ImageReader createReaderInstance(Object extension)
122: {
123: return new JPEGImageReader(this);
124: }
125:
126: public static void registerSpis(IIORegistry reg)
127: {
128: reg.registerServiceProvider(getReaderSpi(), ImageReaderSpi.class);
129: }
130:
131: public static synchronized JPEGImageReaderSpi getReaderSpi()
132: {
133: if (readerSpi == null)
134: readerSpi = new JPEGImageReaderSpi();
135: return readerSpi;
136: }
137: }