3
我正在寻找一种方法来绘制一个带有灰度颜色的Java中的PNG图像(带有Alpha通道),然后覆盖一个透明颜色,例如Green 75%的不透明度,最重要的是改变颜色。 要清楚,最终的图像将直接导致在其上方放置透明颜色,并且不会是任何特殊类型混合的结果。上的图像的顶部在Alpha通道上叠加一个透明颜色的PNG
然后叠加RGB颜色(102,255,0,阿尔法)::
例如,我会得出以下图像
在图像上绘制颜色的方法必须是这样的,它不会干扰屏幕上靠近的其他图像。这将与Adobe Photoshop的颜色叠加功能类似。两幅图像可以有不同的颜色叠加层,但单独的叠加层不会与彼此相冲突。
感谢leonbloy,我相信使用“SRC_OVER”的AlphaComposit可以解决这个问题,然后我可以使用一种方法将结果保存为一个新的BufferedImage,这将防止叠加层影响屏幕上的任何其他图像对象。
我会发布结果,因为我测试这个。
不清楚你想要做什么,也没有尝试过什么。你在使用BufferedImage吗?你读过 - 是 - [这](http://stackoverflow.com/questions/2318020/merging-two-images)?你想根据顶部图像的透明度来做一个“正常”的覆盖,或者你是想实现一个特殊的混合/覆盖?你看过[AlphaComposite](http://docs.oracle.com/javase/1.5.0/docs/api/java/awt/AlphaComposite.html)吗? – leonbloy
我的歉意,我会尽量更清楚。我的意图是按照透明度进行正常叠加。我不以任何方式混合。我并不知道AlphaComposite类,因为我是Java中2D图形编程的新手,在我的初始搜索中没有找到。我查看了AlphaComposite上的[this](http://docs.oracle.com/javase/tutorial/2d/advanced/compositing.html)页面,看起来好像“SOURCE_OVER”是我正在使用的。 – ubertastic
好的,如果你解决了你的问题,你总是可以自己添加你的解决方案作为答案并接受它。顺便说一句,这与PNG没有特别的关系,我删除了这个标签。 – leonbloy