Revision 11196 trunk/libraries/libRaster/src/org/gvsig/raster/buffer/RasterBuffer.java
RasterBuffer.java | ||
---|---|---|
385 | 385 |
switch (getDataType()) { |
386 | 386 |
case IBuffer.TYPE_BYTE: |
387 | 387 |
for (int i = 0; i < getBandCount(); i++) |
388 |
for (int r = 0; r < getHeight(); r++) |
|
388 |
for (int r = 0; r < getHeight(); r++) {
|
|
389 | 389 |
for (int c = 0; c < getWidth(); c++) { |
390 | 390 |
value = (double) (getElemByte(r, c, i) & 0xff); |
391 | 391 |
if (value > max) max = value; |
392 | 392 |
if (value < min) min = value; |
393 | 393 |
} |
394 |
if (isCanceled()) |
|
395 |
return null; |
|
396 |
} |
|
394 | 397 |
break; |
395 | 398 |
case IBuffer.TYPE_SHORT: |
396 | 399 |
for (int i = 0; i < getBandCount(); i++) |
397 |
for (int r = 0; r < getHeight(); r++) |
|
400 |
for (int r = 0; r < getHeight(); r++) {
|
|
398 | 401 |
for (int c = 0; c < getWidth(); c++) { |
399 | 402 |
value = (double) (getElemShort(r, c, i) & 0xffff); |
400 | 403 |
if (value > max) max = value; |
401 | 404 |
if (value < min) min = value; |
402 | 405 |
} |
406 |
if (isCanceled()) |
|
407 |
return null; |
|
408 |
} |
|
403 | 409 |
break; |
404 | 410 |
case IBuffer.TYPE_INT: |
405 | 411 |
for (int i = 0; i < getBandCount(); i++) |
406 |
for (int r = 0; r < getHeight(); r++) |
|
412 |
for (int r = 0; r < getHeight(); r++) {
|
|
407 | 413 |
for (int c = 0; c < getWidth(); c++) { |
408 | 414 |
value = (double) (getElemInt(r, c, i) & 0xffffffff); |
409 | 415 |
if (value > max) max = value; |
410 | 416 |
if (value < min) min = value; |
411 | 417 |
} |
418 |
if (isCanceled()) |
|
419 |
return null; |
|
420 |
} |
|
412 | 421 |
break; |
413 | 422 |
case IBuffer.TYPE_FLOAT: |
414 | 423 |
for (int i = 0; i < getBandCount(); i++) |
415 |
for (int r = 0; r < getHeight(); r++) |
|
424 |
for (int r = 0; r < getHeight(); r++) {
|
|
416 | 425 |
for (int c = 0; c < getWidth(); c++) { |
417 | 426 |
value = (double) getElemFloat(r, c, i); |
418 | 427 |
if (value > max) max = value; |
419 | 428 |
if (value < min) min = value; |
420 | 429 |
} |
430 |
if (isCanceled()) |
|
431 |
return null; |
|
432 |
} |
|
421 | 433 |
break; |
422 | 434 |
case IBuffer.TYPE_DOUBLE: |
423 | 435 |
for (int i = 0; i < getBandCount(); i++) |
424 |
for (int r = 0; r < getHeight(); r++) |
|
436 |
for (int r = 0; r < getHeight(); r++) {
|
|
425 | 437 |
for (int c = 0; c < getWidth(); c++) { |
426 | 438 |
value = getElemDouble(r, c, i); |
427 | 439 |
if (value > max) max = value; |
428 | 440 |
if (value < min) min = value; |
429 | 441 |
} |
442 |
if (isCanceled()) |
|
443 |
return null; |
|
444 |
} |
|
430 | 445 |
break; |
431 | 446 |
} |
432 | 447 |
double[] values = new double[2]; |
... | ... | |
444 | 459 |
Histogram hist = null; |
445 | 460 |
double[] limits = getLimits(); |
446 | 461 |
|
462 |
if (limits == null) |
|
463 |
return null; |
|
464 |
|
|
447 | 465 |
if (getDataType() == IBuffer.TYPE_BYTE) |
448 | 466 |
hist = new Histogram(getBandCount(), 255, limits[0], limits[1]); |
449 | 467 |
else |
... | ... | |
474 | 492 |
break; |
475 | 493 |
} |
476 | 494 |
|
477 |
if (isCanceled())
|
|
495 |
if (isCanceled()) |
|
478 | 496 |
return null; |
497 |
|
|
479 | 498 |
percent = ((iBand*getHeight() + row) * 100) /(getHeight() * getBandCount()); |
480 | 499 |
} |
481 | 500 |
} |
Also available in: Unified diff