我已经实现了Firebase ML Vision Face Model及其工作正常。我正在从face.getContour(FirebaseVisionFaceContour.FACE).points
这是我的代码
val faceContourPoints: List<FirebaseVisionPoint> = face.getContour(FirebaseVisionFaceContour.FACE).points ?: ArrayList()
val path = Path()
for (i in 1..(faceContourPoints.size - 1)) {
val oldPoint = faceContourPoints.get(i - 1)
val currPoint = faceContourPoints.get(i)
path.moveTo(oldPoint.x, oldPoint.y)
path.lineTo(currPoint.x, currPoint.y)
}
path.close()
shapeCrop(editedBitmap, path)
在我的shapeCrop函数中,我从this链接获取了参考,并且在我画圆时它起作用了,但是它不符合我的路径。正在清除所有内容。 这是我的shapeCrop()函数-
fun shapeCrop(src:Bitmap, path: Path){
val output = Bitmap.createBitmap(src.width, src.height, Bitmap.Config.ARGB_8888)
val canvas = Canvas(output)
val paint = Paint(Paint.ANTI_ALIAS_FLAG)
paint.color = -0x1000000
canvas.drawPath(path, paint)
paint.xfermode = PorterDuffXfermode(PorterDuff.Mode.SRC_IN)
canvas.drawBitmap(src, 0f, 0f, paint)
imageView.setImageBitmap(output)
}
我也尝试过使用this stackoverflow答案中的一种解决方案,但是当我画一个圆时,它仍然可以工作,但是当我绘制路径时,什至没有清除位图,都没有任何反应。
我确定我的位图很好,可能是我的路径有问题。