从位图中剪切多点多边形并将其放在透明度上

时间:2012-01-24 20:03:12

标签: android bitmap polygon shape

我有一个位图,我正在剪切多点多边形。我很好奇是什么正确的过程是采取任意形状内的像素并将其复制到新的位图,其他像素是透​​明的。目标是允许用户跟踪形状,然后删除多边形外的所有内容。

我已经计算出多边形部分(作为一个点数组),但现在我很难理解如何将所选像素传输到新的位图。

TIA

1 个答案:

答案 0 :(得分:9)

不确定您的代码是如何工作的,但是这里有一个关于如何操作的想法:

  1. 计算所选区域的边界矩形(从点中找到min x,min y,max x和max y)。
  2. 使用BitmapCanvas - 方法中的任意一种方法将图像裁剪到边界矩形。
  3. 从积分中创建Path,全部移至新位图(x-=minX, y-=minY);
  4. 将路径FillType设置为反向(填充外部)。
  5. 在新的裁剪画布上,使用Xfermode为PorterDuff.CLEAR的绘画绘制路径,删除所有颜色。