1

我正在尝试在 JPEG 上覆盖大部分透明的 PNG,并将结果输出为 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);

显然,输出不是我所期望的。我在这里做错了什么? 来源.jpg覆盖.png测试.jpg

4

0 回答 0