⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jpegimageencoder.java

📁 JAVA 所有包
💻 JAVA
字号:
/* * @(#)JPEGImageEncoder.java	1.8 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;/** * JPEGImageEncoder Interface *  * JPEGImageEncoder compresses images into JPEG data streams and * writes the JPEG stream to an OutputStream.  Image data that is to * be encoded can be passed in as a Raster of image data or as a * BufferedImage.  Encoding or the image data into the output JPEG * stream is controlled by the parameters setting found in the * JPEGEncodeParam object.<P> *  * ColorSpace comments: First off JPEG by specification is color * blind!  That said, this interface will perform some color space * conversion in the name of better compression ratios.  There is no * explicit mechanism in the JPEGEncodeParam interface for controlling * the Encoded ColorSpace of the data when it is written to the JPEG * data stream.  If an approriate colorspace setting is not already * defined it is recommended that colorspace unknown is used.  Some * updates to the standard color space designations have been made to * allow this decoder to handle alpha channels.  See the * JPEGEncodeParam description for more details on additional color * space designations ( @see JPEGEncodeParam ).<P> *  * This encoder will process interchange, and abbreviated JPEG * streams. */import java.io.OutputStream;import java.io.IOException;import java.awt.image.BufferedImage;import java.awt.image.ColorModel;import java.awt.image.Raster;/** * JPEGImageEncoder encodes buffers of image data into JPEG data * streams.  Users of this interface are required to provide image data in * a Raster or a BufferedImage, set the necessary parameters in the * JPEGEncodeParams object and successfully open the * <code>OutputStream</code> that is the destination of the encoded * JPEG stream. * * The JPEGImageEncoder interface can encode image data into interchange, * and abbreviated JPEG data streams that are written to the * OutputStream provided to the 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		JPEGCodec * @see		JPEGEncodeParam * @see		Raster * @see		BufferedImage * @see		OutputStream */public interface JPEGImageEncoder {	/**	 * Return the stream the Encoder is currenlt associated with.	 */	public OutputStream getOutputStream();	/**	 * Set the JPEGEncodeParam object that is to be used for future	 * encoding operations. 'jep' is copied so changes will not be	 * tracked, unless you call this method again.	 * @param jep The JPEGEncodeParam object to use for future encodings.	 *        	 */	public void setJPEGEncodeParam(JPEGEncodeParam jep);	/**	 * This returns a copy of the current JPEGEncodeParam object, if	 * you want changes to affect the encoding process you must 'set'	 * it back into the encoder (either through setJPEGEncodeParam or	 * by providing the modified param object in the call to encode.	 * @return A copy of the current JPEGEncodeParam object	 */	public JPEGEncodeParam getJPEGEncodeParam();	/**	 * This is a factory method for creating JPEGEncodeParam objects.	 * The returned object will do a credible job of encoding the	 * given BufferedImage.	 */	public JPEGEncodeParam getDefaultJPEGEncodeParam(BufferedImage bi)		throws ImageFormatException;	/** 	 * Encode a BufferedImage as a JPEG data stream.  Note, some color	 * conversions may takes place.  The current JPEGEncodeParam's	 * encoded COLOR_ID should match the value returned by	 * getDefaultColorID when given the BufferedImage's ColorModel.<P>	 * If no JPEGEncodeParam object has been provided yet a default	 * one will be created by calling getDefaultJPEGEncodeParam with	 * bi.	 * @param bi The BufferedImage to encode.	 */	public void encode(BufferedImage bi)		throws IOException, ImageFormatException;	/** 	 * Encode a BufferedImage as a JPEG data stream.  Note, some color	 * conversions may takes place.  The jep's encoded COLOR_ID should	 * match the value returned by getDefaultColorID when given the	 * BufferedImage's ColorModel.<P>	 * This call also sets the current JPEGEncodeParam object.  The	 * given JPEGEncodeParam object will be used for this and future	 * encodings.  If jep is null then a new JPEGEncodeParam object	 * will be created by calling getDefaultJPEGEncodeParam with bi.	 * @param bi  The BufferedImage to encode.	 * @param jep The JPEGEncodeParam object used to control the encoding.	 */	public void encode(BufferedImage bi, JPEGEncodeParam jep)		throws IOException, ImageFormatException;	/** 	 * Returns the 'default' encoded COLOR_ID for a given ColorModel.	 * This method is not needed in the simple case of encoding	 * Buffered Images (the library will figure things out for you).	 * It can be useful for encoding Rasters.  To determine what needs	 * to be done to the image prior to encoding.	 * @param cm The ColorModel to map to an jpeg encoded COLOR_ID.	 * @return The default mapping of cm to a jpeg Color_ID note that	 * in a few cases color conversion is required.	 */	public int getDefaultColorId(ColorModel cm);	/**	 * 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 reccomended that you	 * stick to the BufferedImage interfaces.	 */	public JPEGEncodeParam getDefaultJPEGEncodeParam(Raster ras, int colorID)		throws ImageFormatException;	/**	  * 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.	  *	  * @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 JPEGEncodeParam getDefaultJPEGEncodeParam(int numBands,                                                         int colorID)                throws ImageFormatException;	/**	 * 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 JPEGEncodeParam getDefaultJPEGEncodeParam(JPEGDecodeParam jdp)	    throws ImageFormatException;	/** 	 * Encode a Raster as a JPEG data stream.  Note that no color	 * conversion takes place.  It is required that you match the	 * Raster to the encoded COLOR_ID contained in the current	 * JPEGEncodeParam object.<P>	 * If no JPEGEncodeParam object has been provided yet a	 * new JPEGEncodeParam object will be created by calling	 * getDefaultJPEGEncodeParam with ras and COLOR_ID_UNKNOWN.	 * @param ras The Raster to encode.	 */	public void encode(Raster ras)           throws IOException, ImageFormatException;	/** 	 * Encode a Raster as a JPEG data stream.  Note that no color	 * conversion takes place.  It is required that you match the	 * Raster to the encoded COLOR_ID contained in the JPEGEncodeParam	 * object.	 * If jep is null a new JPEGEncodeParam object will be created by	 * calling getDefaultJPEGEncodeParam with ras and	 * COLOR_ID_UNKNOWN.	 * @param ras The Raster to encode.	 * @param jep The JPEGEncodeParam object used to control the encoding.	 */	public void encode(Raster ras, JPEGEncodeParam jep) 		throws IOException, ImageFormatException;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -