/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2002-2008, Open Source Geospatial Foundation (OSGeo) * * 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; import org.opengis.style.ContrastMethod; /** * The ContrastEnhancement object defines contrast enhancement for a channel of * a false-color image or for a color image. Its format is: * <pre> * <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"/> * </pre> * 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 extends org.opengis.style.ContrastEnhancement { /** * Used to set the contrast enhancement method used. * @param method */ public void setMethod( ContrastMethod method ); /** * @param type Should be a Literal of "Normalize" or "Histogram" or "None", if null supplied "None" is assumed * @deprecated Please use setMethod */ public void setType(Expression type); /** * Returns a literal expression (one of NORMALIZE, HISTOGRAM, NONE) * indicating which ContrastMethod value is to be used. * * @deprecated Please use getMethod */ public Expression getType(); /** * @param gamma How much to brighten (greater than 1) or dim (less than 1) this channel; use 1.0 to indicate no change. */ public void setGammaValue(Expression gamma); /** * How much to brighten (values greater than 1.0) or dim (values less than 1.0) an image. The default GammaValue is 1.0 * (no change). * * @return Expression, if <code>null</code> a value of 1.0 is assumed indicating no change */ public Expression getGammaValue(); /** * @deprecated Please use setMethod( ContrastMethodt.NORMALIZE ) */ @Deprecated public void setNormalize(); /** * @deprecated Please use setMethod( ContrastMethodt.HISTOGRAM ) */ @Deprecated public void setHistogram(); /** * @deprecated Please use setMethod; please note Logarithmic is not currently supported */ @Deprecated public void setLogarithmic(); /** * @deprecated Please use setMethod; please note Exponential is not currently supported */ public void setExponential(); /** * Traversal of the style data structure. * @param visitor */ public void accept(StyleVisitor visitor); }