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
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