FileDocCategorySizeDatePackage
JPEGImageWriteParam.javaAPI DocAndroid 1.5 API6245Wed May 06 22:41:54 BST 2009javax.imageio.plugins.jpeg

JPEGImageWriteParam

public class JPEGImageWriteParam extends ImageWriteParam
The JPEGImageWriteParam class allows to set JPEG Huffman tables and quantization when using the JPEG writer plug-in.
since
Android 1.0

Fields Summary
private static final float[]
COMP_QUALITY_VALUES
The Constant COMP_QUALITY_VALUES.
private static final String[]
COMP_QUALITY_DESCRIPTIONS
The Constant COMP_QUALITY_DESCRIPTIONS.
private JPEGQTable[]
qTables
The q tables.
private JPEGHuffmanTable[]
dcHuffmanTables
The dc huffman tables.
private JPEGHuffmanTable[]
acHuffmanTables
The ac huffman tables.
private boolean
optimizeHuffmanTables
The optimize huffman tables.
Constructors Summary
public JPEGImageWriteParam(Locale locale)
Instantiates a new JPEGImageWriteParam object with the specified Locale.

param
locale the Locale.


                                  
       
        super(locale);

        canWriteProgressive = true;
        progressiveMode = ImageWriteParam.MODE_DISABLED;

        canWriteCompressed = true;
        compressionTypes = new String[] {
            "JPEG"
        };
        compressionType = compressionTypes[0];
        compressionQuality = JPEGConsts.DEFAULT_JPEG_COMPRESSION_QUALITY;
    
Methods Summary
public booleanareTablesSet()
Returns true if tables are set, false otherwise.

return
true, if tables are set, false otherwise.

        return qTables != null;
    
public javax.imageio.plugins.jpeg.JPEGHuffmanTable[]getACHuffmanTables()
Gets the AC Huffman tables.

return
the AC Huffman tables which are set, or null.

        return acHuffmanTables == null ? null : acHuffmanTables.clone();
    
public java.lang.String[]getCompressionQualityDescriptions()

        super.getCompressionQualityDescriptions();
        return COMP_QUALITY_DESCRIPTIONS.clone();
    
public float[]getCompressionQualityValues()

        super.getCompressionQualityValues();
        return COMP_QUALITY_VALUES.clone();
    
public javax.imageio.plugins.jpeg.JPEGHuffmanTable[]getDCHuffmanTables()
Gets the DC Huffman tables.

return
the DC Huffman tables which are set, or null.

        return dcHuffmanTables == null ? null : dcHuffmanTables.clone();
    
public booleangetOptimizeHuffmanTables()
Returns true if the writer generates optimized Huffman tables, false otherwise.

return
true, if the writer generates optimized Huffman tables, false otherwise.

        return optimizeHuffmanTables;
    
public javax.imageio.plugins.jpeg.JPEGQTable[]getQTables()
Gets the quantization tables.

return
the quantization tables, or null.

        return qTables == null ? null : qTables.clone();
    
public booleanisCompressionLossless()

        if (getCompressionMode() != MODE_EXPLICIT) {
            throw new IllegalStateException("Compression mode not MODE_EXPLICIT!");
        }
        return false;
    
public voidsetEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[] qTables, javax.imageio.plugins.jpeg.JPEGHuffmanTable[] DCHuffmanTables, javax.imageio.plugins.jpeg.JPEGHuffmanTable[] ACHuffmanTables)
Sets the quantization and Huffman tables for using in encoding streams.

param
qTables the quantization tables.
param
DCHuffmanTables the standart DC Huffman tables.
param
ACHuffmanTables the standart AC huffman tables.

        if (qTables == null || DCHuffmanTables == null || ACHuffmanTables == null) {
            throw new IllegalArgumentException("Invalid JPEG table arrays");
        }
        if (DCHuffmanTables.length != ACHuffmanTables.length) {
            throw new IllegalArgumentException("Invalid JPEG table arrays");
        }
        if (qTables.length > 4 || DCHuffmanTables.length > 4) {
            throw new IllegalArgumentException("Invalid JPEG table arrays");
        }

        // Do the shallow copy, it should be enough
        this.qTables = qTables.clone();
        dcHuffmanTables = DCHuffmanTables.clone();
        acHuffmanTables = ACHuffmanTables.clone();
    
public voidsetOptimizeHuffmanTables(boolean optimize)
Sets the flag indicated that the writer will generate optimized Huffman tables for the image as part of the writing process.

param
optimize the flag of optimizing huffman tables.

        optimizeHuffmanTables = optimize;
    
public voidunsetCompression()

        if (getCompressionMode() != MODE_EXPLICIT) {
            throw new IllegalStateException("Compression mode not MODE_EXPLICIT!");
        }
        compressionQuality = JPEGConsts.DEFAULT_JPEG_COMPRESSION_QUALITY;
    
public voidunsetEncodeTables()
Unset all encoded tables.

        qTables = null;
        dcHuffmanTables = null;
        acHuffmanTables = null;