I need to merge two images (BufferedImage) in Java. It wouldn't be a problem if there was no transparency. The base image already has some transparency. I want to keep this as it is and apply a "mask" to it, the second image. This second image has no opaque pixels, in fact it's almost completely transparent, just has some less transparent pixels to give some sort of "light effect", like a reflex. Important detail: I don't want to do this on screen, with graphics, I need to obtain a BufferedImage with the resultant merge.
Can anyone help me?
Thanks!
DETAILS: Merge two images maintaining transparency. This is what I need to do.
Note: this Set BufferedImage alpha mask in Java does not do what I need because it does not handle well with the two images having transparency – it modifies first picture transparency.
Best Answer
Just create a new BufferedImage with transparency, then paint the other two images (with full or semi-transparency) on it. This is how it will look like:
Sample code (images are called 'image.png' and 'overlay.png'):