Or you can do it manually;
int w=image.getWidth(null);
int h=image.getHeight(null);
int[] pixels=new int[w*h];
PixelGrabber pixelGrabber = new PixelGrabber(image,0,0,w,h,pixels,0,w);
try {
pixelGrabber.grabPixels();
}
catch (InterruptedException e) {}
catch (ArrayIndexOutOfBoundsException aiobe) {}
for (int i=0;i<pixels.length;i++)
{
int p=pixels[i];
if ((p&0xff000000)!=0)
{
int r=Math.min(((p>>16)&0xff)+32,255);
int g=Math.min(((p>>8)&0xff)+0,255);
int b=Math.min((p&0xff)+0,255);
pixels[i]=(p&0xff000000)|r<<16|g<<8|b;
}
}
MemoryImageSource mis=new MemoryImageSource(w,h,pixels,0,w);
Image newImage=Toolkit.getDefaultToolkit().createImage(mis);