// scales second image to size of first // interprets second image as 50% brightness meaning zero static BufferedImage addBufferedImagesPixelByPixel_minus50(BufferedImage img1, BufferedImage img2, double factor default 1) { int w = img1.getWidth(), h = img1.getHeight(); BufferedImage img = newImage(w, h); BufferedImage img2scaled = resizeImage(img2, w, h); for y to h: for x to w: { RGB a = bufferedImage_getRGB(img1, x, y); RGB b = bufferedImage_getRGB(img2scaled, x, y); setRGB(img, x, y, rgb( a.r+(b.r-0.5)*factor, a.g+(b.g-0.5)*factor, a.b+(b.b-0.5)*factor)); } ret img; }