Revision 11196 trunk/libraries/libRaster/src/org/gvsig/raster/buffer/RasterBuffer.java

View differences:

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