あるビットマップから円のような形の別のビットマップにピクセルをコピーするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4045146

質問

setPixel関数とgetPixel関数を使用していますが、自然に長方形の行列を使用しています。円のような形のピクセルをコピーしようとしています!

更新: 今私はこれを使用していますが、これよりも効率的なものがあることを願っています: ジェネラコディセタグプレ

役に立ちましたか?

解決

サークルが修正されている場合は、マスクを使用して非常に高速に実行する方法があると思います。グーグルを使用すると、PorterDuffXfermodeが必要であることがわかります。

それ以外の場合は、計算をより効率的に行うことで時間を節約できます。まず、物事を四角にするために捕虜を使用しないでください。次に、ループの外側の半径を事前に計算します。理論的には、コンパイラはこれをすべて修正しますが、期待しないでください。

3番目に、ブレゼンハムの円アルゴリズムを使用して、の各行の開始と終了を見つけることを検討してください。円を描いてから、一度に1ピクセルではなく、一度に1行ずつピクセルをコピーします。

他のヒント

コピーしようとしているピクセルが円の一部であるかどうかを判断するには、いくつかの計算を行う必要があります。 ジェネラコディセタグプレ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top