/* * GeoTools - OpenSource mapping toolkit * http://geotools.org * (C) 2002-2006, GeoTools Project Managment Committee (PMC) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotools.styling; import org.opengis.filter.expression.Expression; /** * The ContrastEnhancement object defines contrast enhancement for a channel of * a false-color image or for a color image. Its format is: *
 * <xs:element name="ContrastEnhancement">
 *   <xs:complexType>
 *     <xs:sequence>
 *       <xs:choice minOccurs="0">
 *         <xs:element ref="sld:Normalize"/>
 *         <xs:element ref="sld:Histogram"/>
 *       </xs:choice>
 *       <xs:element ref="sld:GammaValue" minOccurs="0"/>
 *     </xs:sequence>
 *   </xs:complexType>
 * </xs:element>
 * <xs:element name="Normalize">
 *   <xs:complexType/>
 * </xs:element>
 * <xs:element name="Histogram">
 *   <xs:complexType/>
 * </xs:element>
 * <xs:element name="GammaValue" type="xs:double"/>
 * 
* In the case of a color image, the relative grayscale brightness of a pixel * color is used. ?Normalize? means to stretch the contrast so that the * dimmest color is stretched to black and the brightest color is stretched to * white, with all colors in between stretched out linearly. ?Histogram? means * to stretch the contrast based on a histogram of how many colors are at each * brightness level on input, with the goal of producing equal number of * pixels in the image at each brightness level on output. This has the * effect of revealing many subtle ground features. A ?GammaValue? tells how * much to brighten (value greater than 1.0) or dim (value less than 1.0) an * image. The default GammaValue is 1.0 (no change). If none of Normalize, * Histogram, or GammaValue are selected in a ContrastEnhancement, then no * enhancement is performed. * * @author iant * @source $URL$ */ public interface ContrastEnhancement { public void setType(Expression type); public Expression getType(); public void setGammaValue(Expression gamma); public Expression getGammaValue(); public void setNormalize(); public void setHistogram(); public void setLogarithmic(); public void setExponential(); public void accept(StyleVisitor visitor); }