Revision 9700
branches/v10+Piloto/libraries/libCq_CMS_praster/src/org/cresques/io/data/RasterBuf.java | ||
---|---|---|
671 | 671 |
} |
672 | 672 |
|
673 | 673 |
/** |
674 |
* Copia una banda de una imagen desde una posici?n sobre otra en la imagen actual. |
|
675 |
* Si la banda de destino no existe |
|
676 |
* se crea nueva. Si la posici?n de la banda de destino est? intercalada entre bandas |
|
677 |
* que ya existen las otras se desplazan hacia abajo, NO se machacan los datos de ninguna. |
|
678 |
* Los datos se replican por referencia por lo que al modificar la banda original las |
|
679 |
* del resto quedar?n afectadas. |
|
680 |
* @param orig. Posici?n de la banda de origen. |
|
681 |
* @param dest. Posici?n de la banda destino |
|
682 |
*/ |
|
683 |
public void copyBand(RasterBuf from, int orig, int dest){ |
|
684 |
switch(getDataType()){ |
|
685 |
case RasterBuf.TYPE_BYTE: if(orig >= byteBuf.length) |
|
686 |
return; |
|
687 |
addBandByte(dest, from.getBandByte(orig)); |
|
688 |
break; |
|
689 |
case RasterBuf.TYPE_SHORT: if(orig >= shortBuf.length) |
|
690 |
return; |
|
691 |
addBandShort(dest, from.getBandShort(orig)); |
|
692 |
break; |
|
693 |
case RasterBuf.TYPE_INT: if(orig >= intBuf.length) |
|
694 |
return; |
|
695 |
addBandInt(dest, from.getBandInt(orig)); |
|
696 |
break; |
|
697 |
case RasterBuf.TYPE_FLOAT: if(orig >= floatBuf.length) |
|
698 |
return; |
|
699 |
addBandFloat(dest, from.getBandFloat(orig)); |
|
700 |
break; |
|
701 |
case RasterBuf.TYPE_DOUBLE: if(orig >= doubleBuf.length) |
|
702 |
return; |
|
703 |
addBandDouble(dest, from.getBandDouble(orig)); |
|
704 |
break; |
|
705 |
} |
|
706 |
} |
|
707 |
/** |
|
674 | 708 |
* Convierte un tipo de dato a cadena |
675 | 709 |
* @param type Tipo de dato |
676 | 710 |
* @return cadena que representa el tipo de dato |
branches/v10+Piloto/libraries/libCq_CMS_praster/src/org/cresques/px/PxRaster.java | ||
---|---|---|
985 | 985 |
|
986 | 986 |
if ((geoFile != null) && geoFile[0] instanceof GdalFile && |
987 | 987 |
(geoFile[0].getDataType() != DataBuffer.TYPE_BYTE)) { |
988 |
RasterBuf raster = ((GdalFile) geoFile[0]).getRaster(wImg, hImg, rp); |
|
989 |
t2 = new Date().getTime(); |
|
988 |
RasterBuf raster = null; |
|
989 |
if (geoFile.length > 1) { // la imagen sale de distintos ficheros |
|
990 |
RasterBuf rasterG=null, rasterB=null; |
|
991 |
raster = ((GdalFile) bandSwitch.getBandR().getGeoRasterFile()).getRaster(wImg, hImg, rp); |
|
992 |
rasterG = ((GdalFile) bandSwitch.getBandG().getGeoRasterFile()).getRaster(wImg, hImg, rp); |
|
993 |
raster.copyBand(rasterG, 0, 1); |
|
994 |
rasterB = ((GdalFile) bandSwitch.getBandB().getGeoRasterFile()).getRaster(wImg, hImg, rp); |
|
995 |
raster.copyBand(rasterB, 0, 2); |
|
996 |
} else { // Toda la imagen est? en el mismo fichero |
|
997 |
raster = ((GdalFile) geoFile[0]).getRaster(wImg, hImg, rp); |
|
998 |
} |
|
999 |
t2 = new Date().getTime(); |
|
990 | 1000 |
|
991 | 1001 |
System.out.println("Dibujando PxRaster: " + ((t2 - t1) / 1000D) + ", secs. Filtrando/Renderizando"); |
992 | 1002 |
t1 = t2; |
... | ... | |
1032 | 1042 |
//TODO:Soluci?n para que no se pinte si hay sharpening. Esto hay que pensarlo mejor |
1033 | 1043 |
if (stackManager == null) |
1034 | 1044 |
stackManager = new RasterFilterStackManager(filterStack); |
1035 |
if(!filterStack.isActive(stackManager.getTypeFilter("sharpening"))){ |
|
1045 |
if (!filterStack.isActive(stackManager.getTypeFilter("sharpening"))){
|
|
1036 | 1046 |
geoImage = bandSwitch.getBandR().getGeoRasterFile().updateImage(wImg, hImg, rp, null, 0, 0); |
1037 | 1047 |
geoImage = bandSwitch.getBandG().getGeoRasterFile().updateImage(wImg, hImg, rp, geoImage, |
1038 | 1048 |
bandSwitch.getBandG().getBand(), GeoRasterFile.GREEN_BAND); |
Also available in: Unified diff