I draw PNGs with the following code and do not run into a problem. It combines multiple PNG images into a single image. The images have transparency, and use bilinear transform for blending.
BufferedImage image = new BufferedImage(BOARD_SIZE, BOARD_SIZE, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = image.createGraphics();
AffineTransformOp transformOp = new AffineTransformOp(new AffineTransform(), AffineTransformOp.TYPE_BILINEAR);
g2d.drawImage(someOtherImage, transformOp, 0, 0);
When I finish the image, I write it to a response using the following code:
OutputStream responseStream = response.getOutputStream();
ImageIO.write(image, "PNG", responseStream);