- /*
- * @(#)BMPImageReaderSpi.java 1.5 04/05/05 05:42:00
- *
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- */
-
- package com.sun.imageio.plugins.bmp;
-
- import java.util.Locale;
- import javax.imageio.spi.ImageReaderSpi;
- import javax.imageio.stream.ImageInputStream;
- import javax.imageio.spi.IIORegistry;
- import javax.imageio.spi.ServiceRegistry;
- import java.io.IOException;
- import javax.imageio.ImageReader;
- import javax.imageio.IIOException;
-
- public class BMPImageReaderSpi extends ImageReaderSpi {
-
- private static String [] writerSpiNames =
- {"com.sun.imageio.plugins.bmp.BMPImageWriterSpi"};
- private static String[] formatNames = {"bmp", "BMP"};
- private static String[] entensions = {"bmp"};
- private static String[] mimeType = {"image/bmp"};
-
- private boolean registered = false;
-
- public BMPImageReaderSpi() {
- super("Sun Microsystems, Inc.",
- "1.0",
- formatNames,
- entensions,
- mimeType,
- "com.sun.imageio.plugins.bmp.BMPImageReader",
- STANDARD_INPUT_TYPE,
- writerSpiNames,
- false,
- null, null, null, null,
- true,
- BMPMetadata.nativeMetadataFormatName,
- "com.sun.imageio.plugins.bmp.BMPMetadataFormat",
- null, null);
- }
-
- public void onRegistration(ServiceRegistry registry,
- Class<?> category) {
- if (registered) {
- return;
- }
- registered = true;
- }
-
- public String getDescription(Locale locale) {
- return "Standard BMP Image Reader";
- }
-
- public boolean canDecodeInput(Object source) throws IOException {
- if (!(source instanceof ImageInputStream)) {
- return false;
- }
-
- ImageInputStream stream = (ImageInputStream)source;
- byte[] b = new byte[2];
- stream.mark();
- stream.readFully(b);
- stream.reset();
-
- return (b[0] == 0x42) && (b[1] == 0x4d);
- }
-
- public ImageReader createReaderInstance(Object extension)
- throws IIOException {
- return new BMPImageReader(this);
- }
- }
-