java - 如何在JAVA中插入图片到背景并保存?

标签 java bufferedimage graphics2d

我想将图像插入背景并保存,两者都是具有透明度的png文件,下面的代码工作正常,但新图像仅变成黑白。

BufferedImage BUFFEREDIMAGE1=ImageIO.read(new File(strPATH+"/IMAGE.png"));
BufferedImage BUFFEREDIMAGE2=ImageIO.read(new File(strPATH+"/WATERMARK.png"));
Graphics2D GRAPHICS1=BUFFEREDIMAGE1.createGraphics();
GRAPHICS1.drawImage(BUFFEREDIMAGE2,intLeft,intTop,intWidth,intHeight,null);
GRAPHICS1.dispose();
ImageIO.write(BUFFEREDIMAGE2,"png",new File(strPATH,"SAVED.png"));

最佳答案

最可能的原因是图像的色彩空间在某些时候发生了变化。您最好使用 RGB 或 RGBA 格式显式创建一个新的目标 BufferedImage 并将两个源图像写入其中。这消除了该区域中任何可能的变化。

关于java - 如何在JAVA中插入图片到背景并保存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20698940/

相关文章:

java - 无法在 ADT 中安装 wtp 组件

Java 线程通过按钮暂停和恢复的问题

java - 使用play作为代理服务器时如何重写绝对路径?

java - 如何刷新包含 BufferedImage 的 JFrame?

java - 为什么java在jpeg图像上绘制错误的颜色线?

java - 在 Google App Engine (localhost) 上的 Jetty 上调试应用程序

java - 如何有选择地重置数组的维度?

java裁剪图像全黑

java - 传递给 Paint() 调用的顶级组件是什么?

java - 如何使用 Graphics2D 平滑手绘线条