我需要在Java中合并两个图像(BufferedImage)。没有透明度就不会有问题。基本图像已经具有一定的透明度。我想保持原样,并对其应用“蒙版”,即第二张图像。第二个图像没有不透明的像素,实际上几乎是完全透明的,只是具有较少的透明像素,以提供某种“光效果”,例如反射。重要细节:我不想在屏幕上使用图形来执行此操作,我需要获取带有结果合并的BufferedImage。谁能帮我?谢谢!详细信息:合并两个图像以保持透明度。这就是我需要做的。注意:此Java中的Set BufferedImage alpha蒙版无法满足我的需要,因为它不能很好地处理具有透明度的两个图像-它修改了第一张图片的透明度。
3 回答

梦里花落0921
TA贡献1772条经验 获得超6个赞
我无法给您具体的答案,但是java.awt.AlphaComposite是您的朋友。您将完全控制如何合并两个图像。但是,使用起来并不简单-您需要首先学习一些图形理论。

慕后森
TA贡献1802条经验 获得超5个赞
在不了解您要实现的效果的更多信息的情况下,我只是指出您也可以直接在BufferedImage上绘制。因此,您可以在屏幕上执行的任何操作都可以在图像本身上执行。
因此,如果您想要的只是一个绘制在另一个之上,那真的很容易。只需抓住基础图像的Graphics对象,然后在其上绘制另一个即可。
同样,根据您要达到的确切效果,可能不起作用。更多细节将提供更好的帮助。例如,这是其他响应者提到的AlphaComposite的工作还是自定义ImageOp(或现有ImageOps的某种组合)。
添加回答
举报
0/150
提交
取消