📄 jpegcodec.java
字号:
/* * @(#)JPEGCodec.java 1.9 05/11/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. *//********************************************************************** ********************************************************************** ********************************************************************** *** COPYRIGHT (c) 1997-1998 Eastman Kodak Company. *** *** As an unpublished work pursuant to Title 17 of the United *** *** States Code. All rights reserved. *** ********************************************************************** ********************************************************************** **********************************************************************/package com.sun.image.codec.jpeg;import sun.awt.image.codec.JPEGImageDecoderImpl;import sun.awt.image.codec.JPEGImageEncoderImpl;import sun.awt.image.codec.JPEGParam;import java.awt.image.BufferedImage;import java.awt.image.Raster;import java.awt.image.ColorModel;import java.io.InputStream;import java.io.OutputStream;/** * This class is a factory for implementations of the JPEG Image * Decoder/Encoder. * <p> * Note that the classes in the com.sun.image.codec.jpeg package are not * part of the core Java APIs. They are a part of Sun's JDK and JRE * distributions. Although other licensees may choose to distribute these * classes, developers cannot depend on their availability in non-Sun * implementations. We expect that equivalent functionality will eventually * be available in a core API or standard extension. * <p> * * @see JPEGImageDecoder * @see JPEGImageEncoder */public class JPEGCodec { private JPEGCodec() { } /** * This creates an instance of a JPEGImageDecoder that can be used * to decode JPEG Data streams. */ public static JPEGImageDecoder createJPEGDecoder(InputStream src) { return new JPEGImageDecoderImpl(src); } /** * This creates an instance of a JPEGImageDecoder that can be used * to decode JPEG Data streams. */ public static JPEGImageDecoder createJPEGDecoder(InputStream src, JPEGDecodeParam jdp) { return new JPEGImageDecoderImpl(src, jdp); } /** * This creates an instance of a JPEGImageEncoder that can be used * to encode image data as JPEG Data streams. */ public static JPEGImageEncoder createJPEGEncoder(OutputStream dest) { return new JPEGImageEncoderImpl(dest); } /** * This creates an instance of a JPEGImageEncoder that can be used * to encode image data as JPEG Data streams. */ public static JPEGImageEncoder createJPEGEncoder(OutputStream dest, JPEGEncodeParam jep) { return new JPEGImageEncoderImpl(dest, jep); } /** * This is a factory method for creating JPEGEncodeParam objects. * The returned object should do a credible job of encoding the * given BufferedImage. * @param bi A BufferedImage that is similar to the BufferedImage(s) * that will encoded using the returned JPEGEncodeParam object. */ public static JPEGEncodeParam getDefaultJPEGEncodeParam(BufferedImage bi) { int colorID = JPEGParam.getDefaultColorId(bi.getColorModel()); return getDefaultJPEGEncodeParam(bi.getRaster(), colorID); } /** * This is a factory method for creating JPEGEncodeParam objects. * It is the users responsiblity to match the colorID with the * data contained in the Raster. Failure to do so may lead to * either poor compression or poor image quality. If you don't * understand much about JPEG it is strongly recommended that you * stick to the BufferedImage interface. * @param ras Raster that is similar to those to be encoded later. * @param colorID the COLOR_ID for the encoded data. This should * match the data in the raster. */ public static JPEGEncodeParam getDefaultJPEGEncodeParam(Raster ras, int colorID) { JPEGParam ret = new JPEGParam(colorID, ras.getNumBands()); ret.setWidth(ras.getWidth()); ret.setHeight(ras.getHeight()); return ret; } /** * This is a factory method for creating JPEGEncodeParam objects. It * is the users responsiblity to match the colorID with the given * number of bands, which should match the data being encoded. * Failure to do so may lead to poor compression and/or poor image * quality. If you don't understand much about JPEG it is strongly * recommended that you stick to the BufferedImage interface. * * This can also be used as a factory for a JPEGDecodeParam object. * However this usage is extremely rare, as one needs to be decoding * abbreviated JPEG streams where the JPEG tables are coming from * some source other than a JPEG tables only stream. * * @param numBands the number of bands that will be encoded (max of four). * @param colorID the COLOR_ID for the encoded data. This is used to * set reasonable defaults in the parameter object. This must match * the number of bands given. */ public static JPEGEncodeParam getDefaultJPEGEncodeParam(int numBands, int colorID) throws ImageFormatException { return new JPEGParam(colorID, numBands); } /** * This is a factory method for creating a JPEGEncodeParam from a * JPEGDecodeParam. This will return a new JPEGEncodeParam object * that is initialized from the JPEGDecodeParam object. All major * pieces of information will be initialized from the DecodeParam * (Markers, Tables, mappings). * @param jdp The JPEGDecodeParam object to copy. */ public static JPEGEncodeParam getDefaultJPEGEncodeParam(JPEGDecodeParam jdp) throws ImageFormatException { return new JPEGParam(jdp); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -