Revision 2308 org.gvsig.raster/branches/org.gvsig.raster_dataaccess_refactoring/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/grid/filter/band/ToLumSaFilter.java

View differences:

ToLumSaFilter.java
23 23

  
24 24
import org.gvsig.fmap.dal.coverage.dataset.Buffer;
25 25
import org.gvsig.fmap.dal.coverage.datastruct.Params;
26
import org.gvsig.fmap.dal.coverage.exception.FilterAddException;
26 27
import org.gvsig.fmap.dal.coverage.grid.filter.BaseRasterFilter;
27
import org.gvsig.raster.impl.DefaultRasterManager;
28
import org.gvsig.raster.impl.buffer.RasterBuffer;
29 28
import org.gvsig.raster.impl.store.ParamsImpl;
30 29
import org.gvsig.raster.util.DefaultColorConversion;
31 30
/**
......
33 32
 * Clase base para el filtro de Tono, Saturaci?n y Brillo
34 33
 * </P>
35 34
 *
36
 * @version 04/12/2007
37 35
 * @author Nacho Brodin (nachobrodin@gmail.com)
38 36
 */
39 37
public class ToLumSaFilter extends BaseRasterFilter {
40
	protected Buffer          rasterAlpha      = null;
41
	public static String[]     names            = new String[] { "tolumsa" };
38
	public static String[]            names            = new String[] { "tolumsa" };
42 39
	protected DefaultColorConversion  colorConversion  = null;
43
	protected int              out              = Buffer.TYPE_BYTE;
44
	protected double           hue              = 0;
45
	protected double           luminosity       = 0;
46
	protected double           saturation       = 0;
47
	protected int[]            renderBands      = null;
40
	protected int                     out              = Buffer.TYPE_BYTE;
41
	protected double                  hue              = 0;
42
	protected double                  luminosity       = 0;
43
	protected double                  saturation       = 0;
48 44
	
49 45
	/**
50 46
	 * Constructor
......
54 50
		setName(names[0]);
55 51
	}
56 52

  
57
	/*
58
	 * (non-Javadoc)
59
	 * @see org.gvsig.raster.grid.filter.RasterFilter#pre()
60
	 */
61
	public void pre() {
62
		exec = true;
63
		raster = (RasterBuffer) params.get("raster");
64
		int[] rb = (int[]) params.get("renderBands");
53
	public void pre() throws FilterAddException {
54
		super.pre();
55
		checkRGBRenderBands();
65 56
		
66
		switch (raster.getBandCount()) {
67
		case 1:renderBands = new int[]{0, 0, 0}; break;
68
		case 2:renderBands = rb; break;
69
		case 3:renderBands = new int[]{0, 1, 2}; break;
70
		}
71
		//Mantenemos los valores de -1 ya que esas bandas no se procesan
72
		for(int i = 0; i < renderBands.length; i++)
73
			if(rb[i] == -1)
74
				renderBands[i] = -1;
75
		
76 57
		if(raster.getDataType() != Buffer.TYPE_BYTE) {
77 58
			exec = false;
78 59
			raster = rasterResult;
......
85 66
		if(params.get("saturation") != null)
86 67
			saturation = ((Double) params.get("saturation")).doubleValue();
87 68
		
88
		if(raster != null) {
89
			height = raster.getHeight();
90
			width = raster.getWidth();
91
			rasterResult = DefaultRasterManager.getInstance().createBuffer(Buffer.TYPE_BYTE, raster.getWidth(), raster.getHeight(), 3, true);	
92
		}
69
		createARGBBufferResult();
70
		
93 71
		if(colorConversion == null)
94 72
			colorConversion = new DefaultColorConversion();
95 73
	}
96 74

  
97
	/*
98
	 * (non-Javadoc)
99
	 * @see org.gvsig.raster.grid.filter.RasterFilter#getGroup()
100
	 */
101 75
	public String getGroup() {
102 76
		return "colores";
103 77
	}
104 78

  
105
	/*
106
	 * (non-Javadoc)
107
	 * @see org.gvsig.raster.grid.filter.RasterFilter#getNames()
108
	 */
109 79
	public String[] getNames() {
110 80
		return names;
111 81
	}
112 82

  
113
	/*
114
	 * (non-Javadoc)
115
	 * @see org.gvsig.raster.grid.filter.RasterFilter#getResult(java.lang.String)
116
	 */
117
	public Object getResult(String name) {
118
		if (name.equals("raster"))
119
			return (Object) this.rasterResult;
120
		return null;
121
	}
122

  
123
	/*
124
	 * (non-Javadoc)
125
	 * @see org.gvsig.raster.grid.filter.RasterFilter#getUIParams(java.lang.String)
126
	 */
127 83
	public Params getUIParams(String nameFilter) {
128 84
		Params params = new ParamsImpl();
129 85
		params.setParam("hue",
......
148 104
	public void process(int x, int y) {
149 105
	}
150 106

  
151
	/*
152
	 * (non-Javadoc)
153
	 * @see org.gvsig.raster.grid.filter.RasterFilter#getOutRasterDataType()
154
	 */
155 107
	public int getOutRasterDataType() {
156 108
		return Buffer.TYPE_BYTE;
157 109
	}
158 110

  
159
	/*
160
	 * (non-Javadoc)
161
	 * @see org.gvsig.raster.grid.filter.RasterFilter#isVisible()
162
	 */
163 111
	public boolean isVisible() {
164
		//IRasterDataSource datasource = (IRasterDataSource)getEnv().get("MultiRasterDataset");
165
		//return (datasource != null && datasource.getBandCount() >= 3);
166 112
		return true;
167 113
	}
168 114

  
169
	/*
170
	 * (non-Javadoc)
171
	 * @see org.gvsig.raster.grid.filter.RasterFilter#getInRasterDataType()
172
	 */
173 115
	public int getInRasterDataType() {
174 116
		return Buffer.TYPE_BYTE;
175 117
	}

Also available in: Unified diff