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) {
boolean canDecodeInput(Object input)
ImageReader createReaderInstance(Object extension)
String getDescription(Locale locale)
static final int isFixedLengthJPEGSegment(int marker)
static final boolean isVariableLengthJPEGSegment(int marker)
JPEGLosslessImageReaderSpi()
static final boolean isNoLengthJPEGSegment(int marker)
static final boolean isSOF(int marker)
static final Class<?> [] inputTypes