ほとんど透明な PNG を JPEG にオーバーレイし、結果を JPEG ファイルとして出力しようとしています。テスト入力を添付しました。コードは次のとおりです: (編集: 参考までに、これは Scala から Java に変換されたものです。構文エラーを 1 つまたは 2 つ見逃したかどうかはわかりませんが、コードからアイデアを得る必要があります)
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);
明らかに、出力は私が期待したものではありません。ここで何が間違っていますか?