/ / BufferedImage:alpha = 0の場合、すべてのピクセルを白に設定します - java、bufferedimage

BufferedImage:alpha = 0の場合、すべてのピクセルを白に設定します - java、bufferedimage

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

回答:

回答№1の場合は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)];

回答№2の場合は1

私はそれが速いかどうか確かに言うことはできませんが、を見てみましょう ColorConvertOp クラス。

個人的には使用していませんが、探しているものかもしれません。