私は2つ持っていRenderedImages
ます。これら 2 つの画像を処理したいOverlay Operation
ので、データ型とバンド数を一致させる必要があります。
私が抱えている問題は、1 つの画像に 3 つのバンド (RGB) があり、2 番目の画像に 4 つのバンド (ARGB) があることです。
私の質問は、アルファチャンネルを最初の画像に追加して、次のことができるようにするにはどうすればよいOverlay Operation
ですか?
編集
OK、最初の画像にアルファチャンネルを追加する方法を見つけました。以下はコードです。単一のバンド定数イメージを作成し、それを最初のイメージとマージしました。
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);
私が今抱えている問題は、オーバーレイを追加するたびに画像の色が変わることです。全ての色が赤やピンクのニュアンスになります。2 番目のオーバーレイを追加すると、画像は再び正常になりますが、最初のオーバーレイの色が変わります。すべての黒い領域が白になります。
また、オーバーレイの背景は透明ではありません。灰色です。
以下は画像の例です。色がどのように変化するかがわかります。
ご覧のとおり、画像とオーバーレイの色が変わり、オーバーレイの背景が透明ではなくなります。
画像が常に正しく表示されるように、この問題を解決するのを手伝ってもらえますか? ありがとう!