少し前に、getPixel()
-ish メソッドを実行する別の (より高速な) 方法について読んだことを覚えています。
問題は、それをどこで読んだか覚えていないことです。徹底的に検索しました..と思います。
答えは、ビットマップをメモリにロックすること、またはそのようなことと関係がありました。
getPixel()
「ティックごとに」複数回実行する必要がありますが、これは非常にコストがかかるようです。
私が何について話しているか知っている人はいますか?
Bitmap.getPixels()
おそらく、ビットマップの任意の部分を配列にコピーするについて考えているでしょう。Bitmap.getPixel()
その時点から、単純な配列アクセスを使用して任意のピクセルに直接アクセスできます。これは、複数回呼び出すよりもはるかに高速です。
ここで、パフォーマンスとメモリの決定に直面します。ピクセルを頻繁にクエリする必要があり、ビットマップがほとんど変更されない場合は、配列を維持します (その配列をメモリに保持することを犠牲にして)。そうでない場合は、必要に応じて収集できるように、できるだけ早くアレイへの関心を解放してください。明らかに、何度も呼び出すことは避けてくださいgetPixels()
。アイデアは、一度呼び出してから、配列を何度もクエリすることです。