summaryrefslogtreecommitdiffstats
path: root/awt/org/apache/harmony/x/imageio/plugins/jpeg/JPEGImageReaderSpi.java
diff options
context:
space:
mode:
Diffstat (limited to 'awt/org/apache/harmony/x/imageio/plugins/jpeg/JPEGImageReaderSpi.java')
-rw-r--r--awt/org/apache/harmony/x/imageio/plugins/jpeg/JPEGImageReaderSpi.java86
1 files changed, 86 insertions, 0 deletions
diff --git a/awt/org/apache/harmony/x/imageio/plugins/jpeg/JPEGImageReaderSpi.java b/awt/org/apache/harmony/x/imageio/plugins/jpeg/JPEGImageReaderSpi.java
new file mode 100644
index 0000000..c719ce7
--- /dev/null
+++ b/awt/org/apache/harmony/x/imageio/plugins/jpeg/JPEGImageReaderSpi.java
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * @author Rustem V. Rafikov
+ * @version $Revision: 1.3 $
+ */
+package org.apache.harmony.x.imageio.plugins.jpeg;
+
+import java.io.IOException;
+import java.util.Locale;
+import javax.imageio.ImageReader;
+import javax.imageio.spi.ImageReaderSpi;
+import javax.imageio.spi.ServiceRegistry;
+import javax.imageio.stream.ImageInputStream;
+
+public class JPEGImageReaderSpi extends ImageReaderSpi {
+
+ public JPEGImageReaderSpi() {
+ super(JPEGSpiConsts.vendorName, JPEGSpiConsts.version,
+ JPEGSpiConsts.names, JPEGSpiConsts.suffixes,
+ JPEGSpiConsts.MIMETypes, JPEGSpiConsts.readerClassName,
+ STANDARD_INPUT_TYPE, JPEGSpiConsts.writerSpiNames,
+ JPEGSpiConsts.supportsStandardStreamMetadataFormat,
+ JPEGSpiConsts.nativeStreamMetadataFormatName,
+ JPEGSpiConsts.nativeStreamMetadataFormatClassName,
+ JPEGSpiConsts.extraStreamMetadataFormatNames,
+ JPEGSpiConsts.extraStreamMetadataFormatClassNames,
+ JPEGSpiConsts.supportsStandardImageMetadataFormat,
+ JPEGSpiConsts.nativeImageMetadataFormatName,
+ JPEGSpiConsts.nativeImageMetadataFormatClassName,
+ JPEGSpiConsts.extraImageMetadataFormatNames,
+ JPEGSpiConsts.extraImageMetadataFormatClassNames);
+ }
+
+
+ @Override
+ public boolean canDecodeInput(Object source) throws IOException {
+ ImageInputStream markable = (ImageInputStream) source;
+ try {
+ markable.mark();
+
+ byte[] signature = new byte[3];
+ markable.seek(0);
+ markable.read(signature, 0, 3);
+ markable.reset();
+
+ if ((signature[0] & 0xFF) == 0xFF &&
+ (signature[1] & 0xFF) == JPEGConsts.SOI &&
+ (signature[2] & 0xFF) == 0xFF) { // JPEG
+ return true;
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return false;
+ }
+
+ @Override
+ public ImageReader createReaderInstance(Object extension) throws IOException {
+ return new JPEGImageReader(this);
+ }
+
+ @Override
+ public String getDescription(Locale locale) {
+ return "DRL JPEG decoder";
+ }
+
+ @Override
+ public void onRegistration(ServiceRegistry registry, Class<?> category) {
+ // super.onRegistration(registry, category);
+ }
+}