android - 从 Bitmap 中剪切多点 ploygon 并将其置于透明状态

标签 android bitmap polygon shapes

我有一个位图,我正在从中切出一个 multipi 点多边形。我很好奇获取任意形状内的像素并将它们复制到其余像素透明的新位图的正确过程是什么。目的是让用户追踪形状,然后移除多边形之外的所有内容。

我已经计算出多边形部分(作为一个点数组),但现在对如何仅将选定的像素传输到新的位图感到困惑。

TIA

最佳答案

不确定你的代码是如何工作的,但这里有一个关于如何做到这一点的想法:

  1. 计算所选区域的边界矩形(根据您的点找到最小 x、最小 y、最大 x 和最大 y)。
  2. 使用任何 BitmapCanvas 方法将图像裁剪到边界矩形。
  3. 创建 Path从你的点,全部移动到你的新位图中 (x-=minX, y-=minY);
  4. 设置路径 FillType到一个相反的(填充外部)。
  5. 在新裁剪的 Canvas 上,使用 Xfermode 为 PorterDuff.CLEAR 的颜料绘制路径,它会移除所有颜色。

关于android - 从 Bitmap 中剪切多点 ploygon 并将其置于透明状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8993292/

相关文章:

java - 随机未正确创建证书

c# - 如何从 C# 中的图形对象获取位图/图像?

java - 在相机预览中计算颜色

javascript - 随机放置 svg 多边形

java - 绘制后如何填充多边形

android - 如何更改android sharedPreferences 保存路径?

android - Proguard 与 Autovalue

android - SurfaceView 在手指触摸屏幕时执行方法

java - 无法使物体绕圈移动

c# - 去 i-1 时如何处理循环