This following code shows you how to create the "night" effect for an image using the RGBImageFilter:
import java.awt.image.*;
public class NightFilter extends RGBImageFilter {
double frac;
//0.0<=g<=1.0
public NightFilter(double g) {
frac=g;
}
public int filterRGB(int x, int y, int rgb) {
if (frac<=0) return 0xFF000000;
if (frac>1.0) return 0xFF000000;
int red=rgb & 0x00FF0000;red>>>=16;
int green=rgb & 0x0000FF00;green>>>=8;
int blue=rgb & 0x0000FF;
int r=(int) (red*frac);
int g=(int) (green*frac);
int b=(int) (blue*frac);
return (0x000000FF<<24) | (r <<16) | (g << 8) | b;
}
}