0

私は BufferedImage を持っていて、完全に透明なすべてのピクセルを完全に透明な白に設定したいと考えています (透明な空白やソースファイルにあるものではなく)。もちろん、getRGB と setRGB を使用して画像全体をループすることもできますが、他にもっと高速な方法はありますか?

4

2 に答える 2

3

次のようにピクセルを設定できます。

public void setRGB(int startX,
               int startY,
               int w,
               int h,
               int[] rgbArray,
               int offset,
               int scansize)

このメソッドは、デフォルトの RGB カラー モデル (TYPE_INT_ARGB) およびデフォルトの sRGB カラー スペースの整数ピクセルの配列をイメージ データの一部に設定します。デフォルトのモデルがイメージの ColorModel と一致しない場合、色の変換が行われます。このメソッドを使用する場合、返されるデータの各カラー コンポーネントの精度は 8 ビットのみです。この画像で座標 (x, y) を指定すると、次の方法で ARGB ピクセルにアクセスできます。

 pixel   = rgbArray[offset + (y-startY)*scansize + (x-startX)];
于 2012-08-23T18:56:40.563 に答える
1

速いかどうかはわかりませんが、ColorConvertOpクラスを見てください。

私は個人的にそれを使用していませんが、それはあなたが探しているものかもしれません.

于 2012-07-18T19:45:34.500 に答える