JAIを使用して画像に「境界線」を追加しています。例:JAIを使用すると、パレットに新しい色をどのように追加できますか?
ParameterBlock pb = new ParameterBlock();
pb.addSource(r);
pb.add(leftPad);
pb.add(rightPad);
pb.add(topPad);
pb.add(bottomPad);
pb.add(new BorderExtenderConstant(consts));
r = JAI.create("border", pb);
上記の 'consts'の値は、ColorModelによって異なります。 ComponentColorModelを使用する場合は、各ピクセルに独自の色がありますので、パレットを混乱させる必要はありません。画像にパレット(GIF、PNG、...)がある場合、ColorModelはIndexColorModelです。
IndexColorModelが使用されている場合、 'consts'はdouble []配列で、サイズは1です。配列内の値はカラーパレットのインデックスです。
新しいIndexColorModelを作成してパレットを修正する方法を見つけましたが、コードを作成するロジックは非常識です! (例えば、パレットでどれくらいの色を使用できるかは、多くの要因によって決まります。また、新しい色を追加するためにパレットから色を削除する必要がある場合は、削除する色を決定するロジックが必要ですその色を参照しているすべてのピクセルを変更する - それは大量のコードです)。
私の質問は、パレットにどのように色を追加するのですか?既存の図書館はありますか?または、私はioimageから何かを使うべきですか? (正直言って、ジャイ "終了"とioimage "開始"のところでちょっと混乱しています)
また、何かの理由で、何かの理由で、パレットに約10色のテスト画像のみが読み込まれます256色あります。 jaiで画像を保存すると、256色すべてが保存されます(11〜255はすべて黒です)。なぜこれをやっているの?
ありがとうございます! David