Вырезание многоточечного плойгона из растрового изображения и его прозрачность - PullRequest
4 голосов
/ 25 января 2012

У меня есть растровое изображение, из которого я вырезаю многоточечный многоугольник.Мне любопытно, каков правильный процесс для принятия пикселей в произвольной форме и копирования их в новое растровое изображение, где остальные пиксели являются прозрачными.Цель состоит в том, чтобы позволить пользователю проследить форму, а затем удалить все, что находится за пределами многоугольника.

Я обработал часть многоугольника (как массив точек), но теперь я озадачен тем, как переноситьтолько выбранные пиксели для нового растрового изображения.

TIA

1 Ответ

9 голосов
/ 25 января 2012

Не знаю, как работает ваш код, но вот идея, как это сделать:

  1. Вычислить ограничивающий прямоугольник выбранной области (найдите min x, min y, max x и max yс твоих очков).
  2. Обрежьте изображение до ограничивающего прямоугольника любым из Bitmap или Canvas -методов.
  3. Создайте Path из ваших точек, все перемещеныв ваше новое растровое изображение (x-=minX, y-=minY);
  4. Установите для ваших путей FillType значение, обратное (заполните снаружи).
  5. На вашем новом обрезанном холсте нарисуйтеПуть с использованием краски с Xfermode как PorterDuff.CLEAR, который удаляет весь цвет.
...