Revision 25599

View differences:

trunk/libraries/libRaster/src/org/gvsig/raster/grid/filter/enhancement/BrightnessFilter.java
19 19
package org.gvsig.raster.grid.filter.enhancement;
20 20

  
21 21
import org.gvsig.raster.buffer.RasterBuffer;
22
import org.gvsig.raster.buffer.cache.RasterReadOnlyBuffer;
22 23
import org.gvsig.raster.dataset.IBuffer;
23 24
import org.gvsig.raster.dataset.Params;
24 25
import org.gvsig.raster.grid.filter.RasterFilter;
trunk/libraries/libRaster/src/org/gvsig/raster/grid/filter/enhancement/LinearStretchEnhancementFilter.java
19 19
package org.gvsig.raster.grid.filter.enhancement;
20 20

  
21 21
import org.gvsig.raster.buffer.RasterBuffer;
22
import org.gvsig.raster.buffer.cache.RasterReadOnlyBuffer;
22 23
import org.gvsig.raster.dataset.FileNotOpenException;
23 24
import org.gvsig.raster.dataset.IBuffer;
24 25
import org.gvsig.raster.dataset.Params;
......
44 45
	protected DatasetListStatistics	   stats             = null;
45 46
	protected double[]                 minBandValue	     = null;
46 47
	protected double[]                 maxBandValue	     = null;
47
	protected int                      nbands            = 3;
48 48
	protected int[]                    renderBands       = null;
49 49
	public static String[]             names             = new String[] {"enhanced_stretch"};
50 50
	private boolean                    removeEnds        = false;
......
115 115

  
116 116
		loadStretchList();
117 117

  
118
		nbands = stats.getBandCount();
118
		if(raster instanceof RasterReadOnlyBuffer) 
119
			((RasterReadOnlyBuffer) raster).addDrawableBands(renderBands);
120

  
119 121
		rasterResult = RasterBuffer.getBuffer(IBuffer.TYPE_BYTE, raster.getWidth(), raster.getHeight(), raster.getBandCount(), true);
120 122
	}
121 123

  
trunk/libraries/libRaster/src/org/gvsig/raster/grid/filter/enhancement/EqualizationShortFilter.java
45 45
				p = (short) minBandValue[renderBands[iBand]];
46 46
		
47 47
			int pos = (int)(((p + dto[iBand]) * nClasses) / distance[iBand]);
48
			int ecualizationPositive = (int)(lahe[renderBands[iBand]][pos]);
49
			int ecualizationNegative = (int)(lahe[renderBands[iBand]][nElements - pos]);
48
			int ecualizationPositive = (int)(lahe[iBand][pos]);
49
			int ecualizationNegative = (int)(lahe[iBand][nElements - pos]);
50 50
			double value = ((nElements - ecualizationNegative) + ecualizationPositive) / 2;
51 51
			
52 52
			rasterResult.setElem(line, col, iBand, (short)value);
trunk/libraries/libRaster/src/org/gvsig/raster/grid/filter/enhancement/EqualizationByteFilter.java
39 39
				continue;
40 40
			}
41 41
			
42
			//Las estad?sticas est?n calculadas para todas las bandas por lo que hay que seleccionar solo las que se renderiza
42 43
			if (p > maxBandValue[renderBands[iBand]])
43 44
				p = (int) maxBandValue[renderBands[iBand]];
44 45
			else if (p < minBandValue[renderBands[iBand]])
45 46
				p = (int) minBandValue[renderBands[iBand]];
46 47

  
47 48
			//M?todo lahe
48
			int ecualizationPositive = (int)lahe[renderBands[iBand]][p % histogram.getNumValues()];
49
			int ecualizationNegative = (int)laheNegative[renderBands[iBand]][nElements - (p % histogram.getNumValues())];
49
			int ecualizationPositive = (int)lahe[iBand][p % histogram.getNumValues()];
50
			int ecualizationNegative = (int)laheNegative[iBand][nElements - (p % histogram.getNumValues())];
50 51
			
51 52
			int value = ((nElements - ecualizationNegative) + ecualizationPositive) / 2;
52 53
			rasterResult.setElem(line, col, iBand, (byte)(value & 0x000000ff));
trunk/extensions/extRasterTools-SE/src/org/gvsig/raster/util/process/FilterProcess.java
28 28
import org.gvsig.raster.beans.previewbase.ParamStruct;
29 29
import org.gvsig.raster.buffer.BufferFactory;
30 30
import org.gvsig.raster.buffer.WriterBufferServer;
31
import org.gvsig.raster.buffer.cache.RasterReadOnlyBuffer;
31 32
import org.gvsig.raster.dataset.GeoRasterWriter;
32 33
import org.gvsig.raster.dataset.IBuffer;
33 34
import org.gvsig.raster.dataset.IRasterDataSource;
......
131 132
				bufferFactory.setReadOnly(true);
132 133

  
133 134
			//Asignaci?n de bandas
135
			int[] renderBands = rendering.getRenderBands();
134 136
			if (rendering != null) {
135
				int[] renderBands = rendering.getRenderBands();
136 137
				// Si es gris, se reduce a una sola banda
137 138
				if ((renderBands.length == 3) && (renderBands[0] == renderBands[1]) && (renderBands[1] == renderBands[2])) 
138 139
					renderBands = new int[] { renderBands[0] };
......
141 142
				bufferFactory.setAllDrawableBands();
142 143

  
143 144
			bufferFactory.setAreaOfInterest();
145
			
146
			IBuffer buff = bufferFactory.getRasterBuf();
147
			if(buff instanceof RasterReadOnlyBuffer) 
148
				((RasterReadOnlyBuffer) buff).addDrawableBands(renderBands);
149
			
144 150
			Grid grid = new Grid(bufferFactory, true);
145 151

  
146 152
			//Obtenemos la lista de filtros
......
167 173
			if((rendering != null && rendering.existColorTable()) || buffer.getBandCount() > 1)
168 174
				colorInterpretation = new DatasetColorInterpretation(new String[] { DatasetColorInterpretation.RED_BAND, DatasetColorInterpretation.GREEN_BAND, DatasetColorInterpretation.BLUE_BAND });
169 175
			else if(rendering != null && buffer.getBandCount() == 2) {
170
				int[] renderBands = rendering.getRenderBands();
176
				renderBands = rendering.getRenderBands();
171 177
				String[] ci = new String[renderBands.length];
172 178
				for (int i = 0; i < renderBands.length; i++) {
173 179
					switch (renderBands[i]) {

Also available in: Unified diff