2012-01-24 2 views
4

나는 다중 점 폴리곤을 잘라내고있는 비트 맵을 가지고 있습니다. 임의의 모양 내에서 픽셀을 가져 와서 픽셀의 나머지 부분이 투명한 새 비트 맵으로 복사하는 올바른 프로세스가 무엇인지 궁금합니다. 목적은 사용자가 모양을 추적 한 다음 다각형 외부의 모든 것을 제거 할 수있게하는 것입니다.비트 맵에서 다중 점 ploygon 잘라 내기 및 투명도에 배치

점의 배열로 다각형 부분을 가공했지만, 이제는 선택한 픽셀 만 새 비트 맵으로 전송하는 방법에 대해 혼란 스럽습니다.

TIA

답변

9

코드가 작업을 수행하는 방법에 대한 아이디어 작동하지만 여기 방법 확실하지 : (분 X, 최소 Y를 찾을

  1. 선택한 영역의 경계 사각형을 계산을 최대 X 그리고 귀하의 포인트에서 최대 y).
  2. Bitmap 또는 Canvas- 방법 중 하나를 사용하여 경계 사각형에 이미지를 자릅니다.
  3. 귀하의 포인트에서 Path을 생성하십시오. 모든 것이 모두 새로운 비트 맵 (x-=minX, y-=minY)으로 옮겨졌습니다.
  4. 경로를 FillType을 역으로 설정하십시오 (바깥 쪽을 채우십시오).
  5. 새 자른 캔버스에서 Xfermode가 PorterDuff.CLEAR 인 페인트를 사용하여 패스를 그려 모든 색상을 제거합니다.
+0

유망 해 보입니다. 시도해 보겠습니다. 감사합니다. –

+0

Dr.Dredel, Bitmap에서 poligon을 잘라낼 수 있었습니까? @ Jave recomendation을 따르려고 노력하고 있지만 여기에 뭔가 빠져있는 것 같습니다 : http://stackoverflow.com/questions/11579645/android-crop-an-image-from-multipoints –

+0

@AndyRes, 나는 라이브러리, 그러나, 나는 지금이 라이브러리가 가끔 (비록 드물 긴하지만) 두려운 OutOfMemory 에러를 생성한다는 것을 알게되었다. 이 답변의 지침을 보면, 나는 그들이 올바르게 작동해야한다고 생각합니다. 실제로이 대답을 구현하는 방법을 보려면이 대답으로 돌아 왔습니다. 코드가 작동하면 게시 할 것입니다. –