Revision 1678 org.gvsig.raster.gdal/trunk/org.gvsig.raster.gdal/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/io/GdalNative.java
GdalNative.java | ||
---|---|---|
1064 | 1064 |
if(lastblock > 0) |
1065 | 1065 |
nBlocks ++; |
1066 | 1066 |
int initYSrc = inputWindow[1]; |
1067 |
int stepYSrc = (buf.getBlockHeight() * inputWindow[3]) / buf.getHeight(); |
|
1068 |
int lastBlockYSrc = (lastblock * inputWindow[3]) / buf.getHeight(); |
|
1067 | 1069 |
int initYBuffer = 0; |
1068 | 1070 |
for (int i = 0; i < nBlocks; i++) { |
1069 | 1071 |
if(lastblock > 0 && i == (nBlocks - 1)) { |
1070 | 1072 |
int[] newStepBuffer = new int[]{0, initYBuffer, stepBuffer[2], initYBuffer + lastblock}; |
1073 |
int[] newWindow = new int[]{inputWindow[0], initYSrc, inputWindow[2], lastBlockYSrc}; |
|
1071 | 1074 |
readData(buf, |
1072 | 1075 |
bandList, |
1073 |
new int[]{inputWindow[0], initYSrc, inputWindow[2], lastblock},
|
|
1076 |
newWindow,
|
|
1074 | 1077 |
bufWidth, lastblock, 0, 0, newStepBuffer); |
1075 | 1078 |
} else { |
1076 | 1079 |
int[] newStepBuffer = new int[]{0, initYBuffer, stepBuffer[2], initYBuffer + buf.getBlockHeight()}; |
1080 |
int[] newWindow = new int[]{inputWindow[0], initYSrc, inputWindow[2], stepYSrc}; |
|
1077 | 1081 |
readData(buf, |
1078 | 1082 |
bandList, |
1079 |
new int[]{inputWindow[0], initYSrc, inputWindow[2], buf.getBlockHeight()},
|
|
1083 |
newWindow,
|
|
1080 | 1084 |
bufWidth, buf.getBlockHeight(), 0, 0, newStepBuffer); |
1081 |
initYSrc += buf.getBlockHeight();
|
|
1085 |
initYSrc += stepYSrc;
|
|
1082 | 1086 |
initYBuffer += buf.getBlockHeight(); |
1083 | 1087 |
} |
1084 | 1088 |
} |
Also available in: Unified diff