/* ImageEncoder.java

	Purpose:
		
	Description:
		
	History:
		Tue Jun 24 15:44:41     2008, Created by tomyeh

Copyright (C) 2008 Potix Corporation. All Rights Reserved.

{{IS_RIGHT
	This program is distributed under LGPL Version 2.1 in the hope that
	it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.image.encoder;

import java.awt.image.RenderedImage;

/**
 * Represents an image encoder used to encode an AWT image into
 * a particular format, such as PNG.
 *
 * @author tomyeh
 * @see ImageEncoders#newInstance
 * @see ImageEncoders#setEncoderClass
 * @since 3.0.7
 */
public interface ImageEncoder {
	/** Encodes an AWT image into a byte array in a particular format.
	 */
	public byte[] encode(RenderedImage image) throws java.io.IOException;
	/** Return the quality of the image encoding.
	 */
	public float getQuality();
	/** Sets the quality of the image encoding.
	 * Simply does nothing if the encoder does not support it.
	 */
	public void setQuality(float quality);
	/** Returns whether to encode the alpha transparency.
	 */
	public boolean isEncodingAlpha();
	/** Sets whether to encode the alpha transparency.
	 * Simply does nothing if the encoder does not support it.
	 */
	public void setEncodingAlpha(boolean encodeAlpha);
}
