2 package com.pixelmed.imageio;
9 import java.io.IOException;
10 import java.util.Locale;
11 import javax.imageio.ImageReader;
12 import javax.imageio.spi.ImageReaderSpi;
13 import javax.imageio.stream.ImageInputStream;
17 private static final String identString =
"@(#) $Header: /userland/cvs/codec/com/pixelmed/imageio/JPEGLosslessImageReaderSpi.java,v 1.5 2016/01/16 15:07:52 dclunie Exp $";
19 static final String vendorName =
"PixelMed Publishing, LLC.";
20 static final String version =
"0.01";
21 static final String readerClassName =
"com.pixelmed.imageio.JPEGLosslessImageReader";
22 static final String description =
"PixelMed JPEG Lossless Image Reader";
24 public static final Class<?>[]
inputTypes = { ImageInputStream.class };
26 static final String[] names = {
"jpeg-lossless" };
27 static final String[] suffixes = {
"ljpeg",
"jpl" };
28 static final String[] MIMETypes =
null;
30 static final String nativeImageMetadataFormatName =
"com.pixelmed.imageio.JPEGLosslessMetadata_0.1";
31 static final String nativeImageMetadataFormatClassName =
"com.pixelmed.imageio.JPEGLosslessMetadata";
49 nativeImageMetadataFormatName,
50 nativeImageMetadataFormatClassName,
59 boolean canDecode =
false;
61 if (input instanceof ImageInputStream) {
62 ImageInputStream stream = (ImageInputStream)input;
63 byte[] b =
new byte[4];
65 stream.readFully(b,0,2);
66 if (b[0] == (
byte)0xff && b[1] == (
byte)0xd8) {
67 int markerprefix = stream.read();
68 while (markerprefix == 0xff) {
69 int marker = stream.read();
85 stream.readFully(b,0,2);
86 int length=((b[0]&0xff)<<8) + (b[1]&0xff);
89 stream.skipBytes(length-2);
106 stream.skipBytes(length-2);
109 markerprefix=stream.read();
114 System.err.println(
"JPEGLosslessImageReaderSpi.canDecodeInput() = "+canDecode);
117 catch (IOException e) {