Revision 2352
org.gvsig.raster.roimask/trunk/org.gvsig.raster.roimask/org.gvsig.raster.roimask.app/org.gvsig.raster.roimask.app.client/src/main/java/org/gvsig/raster/roimask/app/ROIMaskPreview.java | ||
---|---|---|
12 | 12 |
import org.gvsig.fmap.dal.coverage.dataset.Buffer; |
13 | 13 |
import org.gvsig.fmap.dal.coverage.datastruct.Extent; |
14 | 14 |
import org.gvsig.fmap.dal.coverage.datastruct.NoData; |
15 |
import org.gvsig.fmap.dal.coverage.exception.FilterTypeException; |
|
15 | 16 |
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException; |
16 | 17 |
import org.gvsig.fmap.dal.coverage.exception.ROIException; |
18 |
import org.gvsig.fmap.dal.coverage.grid.RasterFilter; |
|
19 |
import org.gvsig.fmap.dal.coverage.grid.RasterFilterList; |
|
17 | 20 |
import org.gvsig.fmap.dal.coverage.grid.render.ImageDrawer; |
18 | 21 |
import org.gvsig.fmap.dal.coverage.store.props.ColorInterpretation; |
19 | 22 |
import org.gvsig.fmap.dal.coverage.store.props.Transparency; |
... | ... | |
175 | 178 |
drawer.setBuffer(buf); |
176 | 179 |
drawer.setLastTransparency(transparency); |
177 | 180 |
try { |
178 |
if(!ci.isRGB() && !ci.isRGBA() && !ci.isPalette())
|
|
179 |
drawer.addEnhanced(inputLyr.getDataStore().getStatistics(), true, 0.2); |
|
181 |
applyFiltersToPreview(drawer);
|
|
182 |
|
|
180 | 183 |
return (BufferedImage)drawer.drawBufferOverImageObject(); |
181 | 184 |
} catch (ProcessInterruptedException e) { |
182 | 185 |
return null; |
183 | 186 |
} |
184 | 187 |
} |
185 | 188 |
|
189 |
/** |
|
190 |
* Adds filters to the preview. If the original render has a color table |
|
191 |
* , a generic enhanced will be added. |
|
192 |
* @param drawer |
|
193 |
*/ |
|
194 |
private void applyFiltersToPreview(ImageDrawer drawer) { |
|
195 |
RasterFilterList filterList = inputLyr.getRender().getFilterList(); |
|
196 |
List<RasterFilter> list = new ArrayList<RasterFilter>(); |
|
197 |
if(filterList.lenght() > 0) { |
|
198 |
for (int i = 0; i < filterList.lenght(); i++) { |
|
199 |
RasterFilter rf = filterList.get(i); |
|
200 |
if(rf.getName().equals("colortable")) { |
|
201 |
drawer.addEnhanced(inputLyr.getDataStore().getStatistics(), true, 0.2); |
|
202 |
return; |
|
203 |
} |
|
204 |
list.add(rf); |
|
205 |
} |
|
206 |
} |
|
207 |
try { |
|
208 |
drawer.addFilters(inputLyr.getDataStore().getStatistics(), list); |
|
209 |
} catch (FilterTypeException e) { |
|
210 |
logger.debug("Tirando sin filtros", e); |
|
211 |
} |
|
212 |
} |
|
213 |
|
|
186 | 214 |
private NoData getNoDataSelected() { |
187 | 215 |
NoData nodata = RasterLocator.getManager().getDataStructFactory().createDefaultNoData( |
188 | 216 |
inputLyr.getDataStore().getBandCount(), inputLyr.getDataStore().getDataType()[0]); |
Also available in: Unified diff