Вот код, а дальше параметрами поиграть
Image src =
ImageIO.read(new File(screenshotPath));
Image target =
ImageIO.read(new File(targetPath));
BufferedImage buffImg = new BufferedImage(((BufferedImage) src).getWidth(), ((BufferedImage) src).getHeight(),
BufferedImage.TYPE_INT_ARGB);
Graphics2D gbi = buffImg.createGraphics();
gbi.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
gbi.drawImage(src, 0, 0, null);
gbi.drawImage(target, 0, 0, null);
ImageIO.write((RenderedImage) buffImg, "png", new File(ResultPath));