private static BufferedImage disparity( ImageInteger src, BufferedImage dst, int minValue, int maxValue, int invalidColor) { int range = maxValue - minValue; for (int y = 0; y < src.height; y++) { for (int x = 0; x < src.width; x++) { int v = src.unsafe_get(x, y); if (v > range) { dst.setRGB(x, y, invalidColor); } else { int r, b; if (v == 0) { r = b = 0; } else { r = 255 * v / maxValue; b = 255 * (maxValue - v) / maxValue; } dst.setRGB(x, y, r << 16 | b); } } } return dst; }