2

IndexColorModelを使用してBufferedImageを使用して、パレットを使用するグラフィックデータを表示しています。次に、を使用してバッファに描画し、createGraphics()このデータをインデックスの配列に戻したいと思います。ただし、私が見つけることができるすべてのメソッドは、実際のインデックス値ではなく、RGB値を取得します。これは少しばかげているように見えます。パレットを繰り返し処理して適切な色を見つけることはできますが、値を直接取得する方がはるかに簡単だからです。

これは手動で見つけなくても可能ですか?

4

1 に答える 1

1

メソッドを変更/オーバーライドできない場合createGraphics()(ソースのない外部 JAR ライブラリに属しているため)、事実上、オブジェクトを手動で見つける必要があります。

それ以外の場合、createGraphics()ソース コードにアクセスできる場合は、次の 2 つの選択肢があります。

  • 一部のメソッド クライアントが返されるオブジェクトとしてインデックスを必要とし、他のクライアントが返される RGB 値を必要とする場合、HashMap<Integer, RGB>as return を構築できます。整数はインデックスであり、RGB はオブジェクト自体または文字列のようなプリミティブ値です。

  • メソッドのソース コードにアクセスする方法を効果的に見つけ、インデックスがプロセスに不可欠な必要なデータであることを確認した場合は、整数 => インデックスを返すだけで、対象のオブジェクトを O(1) で取得できます。

于 2012-09-27T01:52:53.327 に答える