www.pudn.com > MoviesWeb.zip > GIFImageWriter.java


package com.blue.imageio.plugins.gif; 
 
import java.awt.image.BufferedImage; 
import java.io.DataOutput; 
import java.io.IOException; 
 
import javax.imageio.IIOImage; 
import javax.imageio.ImageTypeSpecifier; 
import javax.imageio.ImageWriteParam; 
import javax.imageio.ImageWriter; 
import javax.imageio.metadata.IIOMetadata; 
import javax.imageio.stream.ImageOutputStream; 
 
import com.gif4j.GifEncoder; 
 
 
public class GIFImageWriter extends ImageWriter { 
 
	protected GIFImageWriter(GIFImageWriterSpi gifimagewriterspi) { 
		super(gifimagewriterspi); 
	} 
 
	public IIOMetadata getDefaultStreamMetadata(ImageWriteParam imagewriteparam) { 
		return null; 
	} 
 
	public IIOMetadata getDefaultImageMetadata(ImageTypeSpecifier imagetypespecifier, 
			ImageWriteParam imagewriteparam) { 
		return null; 
	} 
 
	public IIOMetadata convertStreamMetadata(IIOMetadata iiometadata, 
			ImageWriteParam imagewriteparam) { 
		return null; 
	} 
 
	public IIOMetadata convertImageMetadata(IIOMetadata iiometadata, 
			ImageTypeSpecifier imagetypespecifier, ImageWriteParam imagewriteparam) { 
		return null; 
	} 
 
	public void setOutput(Object obj) { 
		super.setOutput(obj); 
		if (obj != null && !(obj instanceof ImageOutputStream)) 
			throw new IllegalArgumentException("output not an instance of ImageOutputStream!"); 
		else 
			return; 
	} 
 
	public void write(IIOMetadata iiometadata, IIOImage iioimage, 
			ImageWriteParam imagewriteparam) throws IOException { 
		if (iioimage == null) 
			throw new IllegalArgumentException("image is null!"); 
		java.awt.image.RenderedImage renderedimage = iioimage.getRenderedImage(); 
		if (getOutput() == null) 
			throw new IllegalStateException("output not set and is null!"); 
		if (iioimage.hasRaster()) 
			throw new UnsupportedOperationException("Doesn't support Raster-based IIOImage(s)"); 
		if (!(renderedimage instanceof BufferedImage)) { 
			throw new IOException("RenderedImage not an instance of BufferedImage!"); 
		} else { 
			GifEncoder.encode((BufferedImage) renderedimage, (DataOutput) getOutput()); 
			return; 
		} 
	} 
}