/* * Copyright (C) Jenly, MLKit Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.king.mlkit.vision.app.face import android.widget.ImageView import com.google.mlkit.vision.facemesh.FaceMesh import com.king.app.dialog.AppDialog import com.king.app.dialog.AppDialogConfig import com.king.camera.scan.AnalyzeResult import com.king.mlkit.vision.app.R import com.king.mlkit.vision.app.ext.drawRect import com.king.mlkit.vision.facemesh.FaceMeshCameraScanActivity /** * 人脸网格检测示例 * * @author Jenly *
* Follow me
*/
open class FaceMeshDetectionActivity : FaceMeshCameraScanActivity() {
override fun onScanResultCallback(result: AnalyzeResult>) {
cameraScan.setAnalyzeImage(false)
val bitmap = result.getBitmap()?.drawRect { canvas, paint ->
for (data in result.result) {
canvas.drawRect(data.boundingBox, paint)
for (point in data.allPoints) {
val position = point.position
canvas.drawCircle(position.x, position.y, 2f, paint)
}
}
}
val config = AppDialogConfig(this, R.layout.result_dialog)
config.setOnClickConfirm {
AppDialog.dismissDialog()
cameraScan.setAnalyzeImage(true)
}.setOnClickCancel {
AppDialog.dismissDialog()
finish()
}
val imageView = config.viewHolder.getView