*
* <p> Subclasses that do not support compression must ensure that
* this value is set to <code>false</code>.
*/
protected boolean canWriteCompressed = false;
/**
* The mode controlling compression settings, which must be set to
* one of the four <code>MODE_*</code> values. The default is
* <code>MODE_COPY_FROM_METADATA</code>.
*
* <p> Subclasses that do not support compression may ignore this
* value.
*
* @see #MODE_DISABLED
* @see #MODE_EXPLICIT
* @see #MODE_COPY_FROM_METADATA
* @see #MODE_DEFAULT
* @see #setCompressionMode
* @see #getCompressionMode
*/
protected int compressionMode = MODE_COPY_FROM_METADATA;
/**
* An array of <code>String</code>s containing the names of the
* available compression types. Subclasses must set the value
* manually.
*
* <p> Subclasses that do not support compression may ignore this
* value.
*/
protected String[] compressionTypes = null;
/**
* A <code>String</code> containing the name of the current
* compression type, or <code>null</code> if none is set.
*
* <p> Subclasses that do not support compression may ignore this
* value.
*/
protected String compressionType = null;
/**
* A <code>float</code> containing the current compression quality
* setting. The initial value is <code>1.0F</code>.
*
* <p> Subclasses that do not support compression may ignore this
* value.
*/
protected float compressionQuality = 1.0F;
/**
* A <code>Locale</code> to be used to localize compression type
* names and quality descriptions, or <code>null</code> to use a
* default <code>Locale</code>. Subclasses must set the value
* manually.
*/
protected Locale locale = null;
/**
* Constructs an empty <code>ImageWriteParam</code>. It is up to
* the subclass to set up the instance variables properly.
*/
protected ImageWriteParam() {}
/**
* Constructs an <code>ImageWriteParam</code> set to use a
* given <code>Locale</code>.
*
* @param locale a <code>Locale</code> to be used to localize
* compression type names and quality descriptions, or
* <code>null</code>.
*/
public ImageWriteParam(Locale locale) {
this.locale = locale;
}
// Return a deep copy of the array
private static Dimension[] clonePreferredTileSizes(Dimension[] sizes) {
if (sizes == null) {
return null;
}
Dimension[] temp = new Dimension[sizes.length];
for (int i = 0; i < sizes.length; i++) {
temp[i] = new Dimension(sizes[i]);
}
return temp;
}
/**
* Returns the currently set <code>Locale</code>, or
* <code>null</code> if only a default <code>Locale</code> is
* supported.
*
* @return the current <code>Locale</code>, or <code>null</code>.
*/
public Locale getLocale() {
return locale;
}
=4= |