我正在尝试将大部分透明的PNG覆盖在JPEG上,并将结果输出为JPEG文件。我附上了测试输入。这是代码:(编辑:仅供参考,这是从Scala翻译成Java的,不确定我是否错过了一两个语法错误,但你应该从代码中得到这个想法)
BufferedImage img = new BufferedImage(800, 800, BufferedImage.TYPE_4BYTE_ABGR); //Goes to test.jpg
img.getGraphics.drawImage(source, 0, 0, Color.black, null); //source.jpg
img.getGraphics.drawImage(overlay, 0, 0, 400, 400, Color.black, null); //overlay.png
//First, get the final JPG into memory in a byte array (I use this elsewhere in my actual code)
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(img, "jpg", baos);
baos.flush();
byte[] bytes = baos.toByteArray();
baos.close();
FileUtils.writeByteArrayToFile(new File("test.jpg"), bytes);
显然,输出不是我的预期。我在这做错了什么?