ホームページ >Java >&#&チュートリアル >Java BufferedImage から 2D ピクセル配列を効率的に取得するにはどうすればよいですか?
Java - 画像からピクセル配列を取得
画像を操作するとき、そのピクセル データにアクセスする必要がよくあります。この記事では、BufferedImage からピクセル値の 2 次元配列を効率的に取得する手法について説明します。
getRGB() メソッドの利用
一般的なアプローチの 1 つは、getRGB メソッドを使用することです。 BufferedImage が提供する () メソッド。このメソッドは、アルファ、赤、緑、青の値を 1 つの int に結合して返します。この方法は便利ではありますが、複数のバイト操作と整数の結合が必要なため、特に大きな画像の場合は非効率的になる可能性があります。
ピクセル配列への直接アクセス
別のアプローチには次のようなものがあります。 BufferedImage の getRaster() メソッドと getDataBuffer() メソッドを利用して、ピクセル配列に直接アクセスします。これにより、ピクセル データに直接アクセスできるようになり、大きな画像のパフォーマンスが向上します。この手法の欠点は、特定のピクセルにアクセスするために手動でインデックスを計算する必要があることです。
パフォーマンスの比較
パフォーマンスの違いを説明するために、パフォーマンス テスト クラスが作成されました。両方のアプローチを利用します。テストは 12,000 x 12,000 ピクセルの画像で行われます。結果は驚くべきものでした:
convertTo2DUsingGetRGB:
convertTo2DWithoutUsingGetRGB:
結論
小さな画像の場合は、getRGB() メソッドで十分な場合があります。ただし、大きな画像の場合、ピクセル配列に直接アクセスすると、パフォーマンスが大幅に向上します。このアプローチを選択すると、処理時間を大幅に短縮し、ピクセル関連の操作の効率を向上させることができます。
以上がJava BufferedImage から 2D ピクセル配列を効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。