【发布时间】:2014-11-17 13:33:25
【问题描述】:
我有两个RenderedImages。我想用这两个图像做一个Overlay Operation,因此它们需要匹配数据类型和波段数。
我遇到的问题是一张图像有 3 个波段 (RGB),而第二张图像有 4 个波段 (ARGB)。
我的问题是如何在第一张图片中添加 Alpha 通道,这样我就可以使用Overlay Operation?
编辑
好的,我找到了一种将 Alpha 通道添加到第一张图像的方法。下面是代码。我只是创建了一个带状常量图像并将其与我的第一张图像合并。
ParameterBlock pb = new ParameterBlock();
pb.add(new Float(finalImage.getWidth())).add(new Float(finalImage.getHeight()));
pb.add(new Byte[] {new Byte((byte)0xFF)});
RenderedImage alpha = JAI.create("constant", pb);
finalImage = BandMergeDescriptor.create(finalImage, alpha, null);
我现在遇到的问题是,每次添加叠加层时,图像都会改变颜色。所有颜色都变成红色或粉红色的细微差别。当我添加第二个叠加层时,图像再次变得正常,但第一个叠加层改变了颜色。所有黑色区域都变为白色。
叠加层的背景也不透明。它是灰色的。
以下是图片示例,让您了解颜色如何变化:
如您所见,图片和叠加层改变了颜色,并且叠加层的背景不透明。
你能帮我解决这个问题,让图像始终正确显示吗?谢谢!
【问题讨论】: