ホームページ > Java > &#&チュートリアル > Java で BufferedImage からピクセル データを配列として効率的に抽出するにはどうすればよいですか?

Java で BufferedImage からピクセル データを配列として効率的に抽出するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-22 12:39:07
オリジナル
401 人が閲覧しました

How Can I Efficiently Extract Pixel Data as an Array from a BufferedImage in Java?

画像からピクセル配列を抽出する方法

Java では、BufferedImage から int[][] 配列としてピクセル データを取得することで、特定のピクセルに直接アクセスします。これを実現する方法は次のとおりです。

BufferedImage の getRGB() メソッドを使用する

このメソッドは、アルファ、赤、緑、青の値を単一の int に結合し、それを返します。個々のカラーコンポーネントを抽出するには、カラーマスクを取得し、それに応じて値をシフトする必要があります。このアプローチは比較的単純ですが、最も効率的というわけではありません。

ピクセル配列への直接アクセス

次のコードを使用すると、ピクセル配列にバイトとして直接アクセスできます。 array:

byte[] pixels = ((DataBufferByte) bufferedImage.getRaster().getDataBuffer()).getData();
ログイン後にコピー

このメソッドは、特に大規模な場合、getRGB() メソッドよりも大幅に高速です。

パフォーマンスの比較

パフォーマンスの違いを実証するために、12,000 x 12,000 ピクセルの画像を使用してテストが実施されました。次の表は、2 つのメソッドの実行時間を比較しています。

Method Average Time
getRGB() 16 seconds
Direct Access 1.5 seconds

結論

DataBufferByte クラスを使用してピクセル配列に直接アクセスすることは、ピクセルを効率的に行うために推奨されるアプローチです。操作。 getRGB() メソッドと比較して、特に大きな画像を扱う場合にパフォーマンスが大幅に向上します。

以上がJava で BufferedImage からピクセル データを配列として効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート