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
クラス。
個人的には使用していませんが、探しているものかもしれません。