2012-01-24 9 views
4

私はマルチポイントポリゴンを切り出しているビットマップを持っています。私は、任意の図形内のピクセルを取り出して、残りのピクセルが透明な新しいビットマップにコピーする正しいプロセスが何か不思議です。目的は、ユーザーが形状をトレースして、ポリゴンの外側のすべてを削除できるようにすることです。ビットマップからマルチポイントのploygonを切り取り、透明に配置する

ポリゴンの部分が(点の配列として)整えられていますが、選択したピクセルだけを新しいビットマップに転送する方法が困惑しています。

TIA

答えて

9

ないあなたのコードがどのように動作するかを確認しますが、ここでそれを行う方法についてのアイデアがあります:

  1. 選択した領域の境界の矩形を計算(分X、最小Y、最大のxを見つけますあなたのポイントからの最大のy)。
  2. BitmapまたはCanvasのいずれかの方法を使用して、画像を境界矩形にトリミングします。
  3. ポイントからPathを作成し、すべて新しいビットマップに移動します(x-=minX, y-=minY);
  4. パスをFillTypeに設定してください(外側を埋める)。
  5. 新しいクロップキャンバスで、XfermodeがPorterDuff.CLEARのペイントを使用してパスを描画し、すべての色を削除します。
+0

それは有望に見えます、私はそれを試してみましょう、ありがとう。 –

+0

Dr.Dredel、ビットマップからポリゴンを切り取ることができましたか?私は@ジャブの勧告に従おうとしているが、私はここに何かを見逃しているようだ:http://stackoverflow.com/questions/11579645/android-crop-an-image-from-multipoints –

+0

@AndyRes、私はしかし、私は今、このライブラリが時には(恐らくまれに)恐ろしいOutOfMemoryエラーを生成することを発見しています。この回答の指示を見て、私は彼らが正しく動作するはずだと思う...私は実際にそれを実装する方法については、この答えに戻ってきた。コードが動作すれば投稿します。 –

関連する問題