Skip to content

Commit

Permalink
发布v2.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
jenly1314 committed Aug 13, 2023
1 parent 7157f25 commit 62c2f49
Show file tree
Hide file tree
Showing 96 changed files with 289 additions and 4,678 deletions.
267 changes: 57 additions & 210 deletions README.md

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ dependencies {

implementation deps.app_dialog

implementation project(':mlkit-camera-core')
implementation project(':mlkit-common')
implementation project(':mlkit-barcode-scanning')
implementation project(':mlkit-face-detection')
Expand Down
Binary file modified app/release/app-release.apk
Binary file not shown.
4 changes: 2 additions & 2 deletions app/release/output-metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 8,
"versionName": "1.4.0",
"versionCode": 9,
"versionName": "2.0.0",
"outputFile": "app-release.apk"
}
],
Expand Down
6 changes: 5 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

<uses-feature
android:name="android.hardware.camera"
android:required="false" />

<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.VIBRATE"/>
Expand Down Expand Up @@ -33,7 +37,7 @@
android:theme="@style/CameraScanTheme"/>

<activity android:name=".barcode.QRCodeScanningActivity"

android:screenOrientation="portrait"
android:exported="false"
android:theme="@style/CameraScanTheme"/>

Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/com/king/mlkit/vision/app/Function.kt
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import com.king.mlkit.vision.camera.util.LogUtils
import com.king.camera.scan.util.LogUtils

/**
* @author <a href="mailto:jenly1314@gmail.com">Jenly</a>
Expand Down
11 changes: 6 additions & 5 deletions app/src/main/java/com/king/mlkit/vision/app/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ import androidx.appcompat.app.AppCompatActivity
import com.google.mlkit.vision.barcode.common.Barcode
import com.king.app.dialog.AppDialog
import com.king.app.dialog.AppDialogConfig
import com.king.camera.scan.CameraScan
import com.king.camera.scan.analyze.Analyzer
import com.king.camera.scan.util.LogUtils
import com.king.camera.scan.util.PermissionUtils
import com.king.mlkit.vision.app.barcode.BarcodeScanningActivity
import com.king.mlkit.vision.app.barcode.MultipleQRCodeScanningActivity
import com.king.mlkit.vision.app.barcode.QRCodeScanningActivity
Expand All @@ -41,10 +45,7 @@ import com.king.mlkit.vision.app.pose.PoseDetectionActivity
import com.king.mlkit.vision.app.segmentation.SelfieSegmentationActivity
import com.king.mlkit.vision.app.text.TextRecognitionActivity
import com.king.mlkit.vision.barcode.BarcodeDecoder
import com.king.mlkit.vision.camera.CameraScan
import com.king.mlkit.vision.camera.analyze.Analyzer.OnAnalyzeListener
import com.king.mlkit.vision.camera.util.LogUtils
import com.king.mlkit.vision.camera.util.PermissionUtils


/**
* @author <a href="mailto:jenly1314@gmail.com">Jenly</a>
Expand Down Expand Up @@ -101,7 +102,7 @@ class MainActivity : AppCompatActivity() {
data?.let {
try {
val srcBitmap = MediaStore.Images.Media.getBitmap(contentResolver, it)
BarcodeDecoder.process(srcBitmap, object : OnAnalyzeListener<List<Barcode>?> {
BarcodeDecoder.process(srcBitmap, object : Analyzer.OnAnalyzeListener<List<Barcode>?> {
override fun onSuccess(result: List<Barcode>) {
if (result.isNotEmpty()) {
val buffer = StringBuilder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,11 @@ import android.widget.ImageView
import com.google.mlkit.vision.barcode.common.Barcode
import com.king.app.dialog.AppDialog
import com.king.app.dialog.AppDialogConfig
import com.king.camera.scan.AnalyzeResult
import com.king.camera.scan.CameraScan
import com.king.mlkit.vision.app.R
import com.king.mlkit.vision.app.drawRect
import com.king.mlkit.vision.barcode.BarcodeCameraScanActivity
import com.king.mlkit.vision.camera.AnalyzeResult
import com.king.mlkit.vision.camera.CameraScan
import com.king.mlkit.vision.camera.config.ResolutionCameraConfig

/**
* @author <a href="mailto:jenly1314@gmail.com">Jenly</a>
Expand All @@ -35,14 +34,13 @@ class BarcodeScanningActivity : BarcodeCameraScanActivity() {
super.initCameraScan(cameraScan)
cameraScan.setPlayBeep(true)
.setVibrate(true)
// .setCameraConfig(ResolutionCameraConfig(this))// 设置CameraConfig
}

override fun onScanResultCallback(result: AnalyzeResult<MutableList<Barcode>>) {

cameraScan.setAnalyzeImage(false)
val buffer = StringBuilder()
val bitmap = result.bitmap.drawRect { canvas, paint ->
val bitmap = result.bitmap?.drawRect { canvas, paint ->
for ((index, data) in result.result.withIndex()) {
buffer.append("[$index] ").append(data.displayValue).append("\n")
data.boundingBox?.let { box ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ import android.widget.ImageView
import com.google.mlkit.vision.barcode.common.Barcode
import com.king.app.dialog.AppDialog
import com.king.app.dialog.AppDialogConfig
import com.king.camera.scan.AnalyzeResult
import com.king.camera.scan.CameraScan
import com.king.mlkit.vision.app.R
import com.king.mlkit.vision.app.drawRect
import com.king.mlkit.vision.barcode.QRCodeCameraScanActivity
import com.king.mlkit.vision.camera.AnalyzeResult
import com.king.mlkit.vision.camera.CameraScan

/**
* @author <a href="mailto:jenly1314@gmail.com">Jenly</a>
Expand All @@ -34,7 +34,6 @@ class MultipleQRCodeScanningActivity : QRCodeCameraScanActivity() {
super.initCameraScan(cameraScan)
cameraScan.setPlayBeep(true)
.setVibrate(true)
// .setCameraConfig(ResolutionCameraConfig(this))
}

override fun getLayoutId(): Int {
Expand All @@ -46,7 +45,7 @@ class MultipleQRCodeScanningActivity : QRCodeCameraScanActivity() {
cameraScan.setAnalyzeImage(false)

val buffer = StringBuilder()
val bitmap = result.bitmap.drawRect { canvas, paint ->
val bitmap = result.bitmap?.drawRect { canvas, paint ->
for ((index, data) in result.result.withIndex()) {
buffer.append("[$index] ").append(data.displayValue).append("\n")
data.boundingBox?.let { box ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ import android.content.Intent
import android.graphics.Point
import android.widget.ImageView
import com.google.mlkit.vision.barcode.common.Barcode
import com.king.camera.scan.AnalyzeResult
import com.king.camera.scan.CameraScan
import com.king.camera.scan.util.PointUtils
import com.king.mlkit.vision.app.R
import com.king.mlkit.vision.barcode.QRCodeCameraScanActivity
import com.king.mlkit.vision.camera.AnalyzeResult
import com.king.mlkit.vision.camera.CameraScan
import com.king.mlkit.vision.camera.util.PointUtils

/**
* @author <a href="mailto:jenly1314@gmail.com">Jenly</a>
Expand Down Expand Up @@ -67,20 +67,26 @@ class QRCodeScanningActivity : QRCodeCameraScanActivity() {
//取预览当前帧图片并显示,为结果点提供参照
ivResult.setImageBitmap(previewView.bitmap)
val points = ArrayList<Point>()
val frameMetadata = result.frameMetadata
var width = frameMetadata.width
var height = frameMetadata.height
if(frameMetadata.rotation == 90 || frameMetadata.rotation == 270) {
width = frameMetadata.height
height = frameMetadata.width
}
for (barcode in results) {
barcode.boundingBox?.let { box ->
//将实际的结果中心点坐标转换成界面预览的坐标
val point = PointUtils.transform(
box.centerX(),
box.centerY(),
result.bitmap.width,
result.bitmap.height,
width,
height,
viewfinderView.width,
viewfinderView.height
)
points.add(point)
}

}
//设置Item点击监听
viewfinderView.setOnItemClickListener {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ import android.widget.ImageView
import com.google.mlkit.vision.face.Face
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.drawRect
import com.king.mlkit.vision.camera.AnalyzeResult
import com.king.mlkit.vision.face.FaceCameraScanActivity

/**
Expand All @@ -31,7 +31,7 @@ open class FaceDetectionActivity : FaceCameraScanActivity() {

override fun onScanResultCallback(result: AnalyzeResult<MutableList<Face>>) {
cameraScan.setAnalyzeImage(false)
val bitmap = result.bitmap.drawRect { canvas, paint ->
val bitmap = result.bitmap?.drawRect { canvas, paint ->
for (data in result.result) {
canvas.drawRect(data.boundingBox, paint)
for (contour in data.allContours) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ 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.drawRect
import com.king.mlkit.vision.camera.AnalyzeResult
import com.king.mlkit.vision.facemesh.FaceMeshCameraScanActivity

/**
Expand All @@ -31,7 +31,7 @@ open class FaceMeshDetectionActivity : FaceMeshCameraScanActivity() {

override fun onScanResultCallback(result: AnalyzeResult<MutableList<FaceMesh>>) {
cameraScan.setAnalyzeImage(false)
val bitmap = result.bitmap.drawRect { canvas, paint ->
val bitmap = result.bitmap?.drawRect { canvas, paint ->
for (data in result.result) {
canvas.drawRect(data.boundingBox, paint)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package com.king.mlkit.vision.app.face

import com.google.mlkit.vision.face.Face
import com.google.mlkit.vision.face.FaceDetectorOptions
import com.king.mlkit.vision.camera.analyze.Analyzer
import com.king.camera.scan.analyze.Analyzer
import com.king.mlkit.vision.face.analyze.FaceDetectionAnalyzer

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ package com.king.mlkit.vision.app.image
import com.google.mlkit.vision.label.ImageLabel
import com.king.app.dialog.AppDialog
import com.king.app.dialog.AppDialogConfig
import com.king.mlkit.vision.camera.AnalyzeResult
import com.king.camera.scan.AnalyzeResult
import com.king.mlkit.vision.image.ImageCameraScanActivity

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package com.king.mlkit.vision.app.`object`

import com.google.mlkit.vision.objects.DetectedObject
import com.google.mlkit.vision.objects.defaults.ObjectDetectorOptions
import com.king.mlkit.vision.camera.analyze.Analyzer
import com.king.camera.scan.analyze.Analyzer
import com.king.mlkit.vision.`object`.analyze.ObjectDetectionAnalyzer

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ import android.widget.ImageView
import com.google.mlkit.vision.objects.DetectedObject
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.drawRect
import com.king.mlkit.vision.camera.AnalyzeResult
import com.king.mlkit.vision.`object`.ObjectCameraScanActivity

/**
Expand All @@ -30,7 +30,7 @@ import com.king.mlkit.vision.`object`.ObjectCameraScanActivity
open class ObjectDetectionActivity : ObjectCameraScanActivity() {
override fun onScanResultCallback(result: AnalyzeResult<MutableList<DetectedObject>>) {
cameraScan.setAnalyzeImage(false)
val bitmap = result.bitmap.drawRect { canvas, paint ->
val bitmap = result.bitmap?.drawRect { canvas, paint ->
for (data in result.result) {
canvas.drawRect(data.boundingBox, paint)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import android.widget.ImageView
import com.google.mlkit.vision.pose.Pose
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.drawRect
import com.king.mlkit.vision.camera.AnalyzeResult
import com.king.mlkit.vision.pose.accurate.AccuratePoseCameraScanActivity

/**
Expand All @@ -20,7 +20,7 @@ class AccuratePoseDetectionActivity : AccuratePoseCameraScanActivity() {
return
}
cameraScan.setAnalyzeImage(false)
val bitmap = result.bitmap.drawRect { canvas, paint ->
val bitmap = result.bitmap?.drawRect { canvas, paint ->
for (data in result.result.allPoseLandmarks) {
canvas.drawCircle(data.position.x, data.position.y, 6f, paint)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import android.widget.ImageView
import com.google.mlkit.vision.pose.Pose
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.drawRect
import com.king.mlkit.vision.camera.AnalyzeResult
import com.king.mlkit.vision.pose.PoseCameraScanActivity

/**
Expand All @@ -20,7 +20,7 @@ class PoseDetectionActivity : PoseCameraScanActivity() {
return
}
cameraScan.setAnalyzeImage(false)
val bitmap = result.bitmap.drawRect { canvas, paint ->
val bitmap = result.bitmap?.drawRect { canvas, paint ->
for (data in result.result.allPoseLandmarks) {
canvas.drawCircle(data.position.x, data.position.y, 6f, paint)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import androidx.annotation.ColorInt
import com.google.mlkit.vision.segmentation.SegmentationMask
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.camera.AnalyzeResult
import com.king.mlkit.vision.segmentation.SegmentationCameraScanActivity

/**
Expand All @@ -31,41 +31,41 @@ class SelfieSegmentationActivity : SegmentationCameraScanActivity() {
AppDialog.INSTANCE.showDialog(config, false)
}

private fun processBitmap(result: AnalyzeResult<SegmentationMask>): Bitmap {
val bitmap = result.bitmap
val mask = result.result
val maskWidth = mask.width
val maskHeight = mask.height
private fun processBitmap(result: AnalyzeResult<SegmentationMask>): Bitmap? {
return result.bitmap?.let { bitmap ->
val mask = result.result
val maskWidth = mask.width
val maskHeight = mask.height

val isRawSizeMaskEnabled = maskWidth != bitmap.width || maskHeight != bitmap.height
val scaleX = bitmap.width * 1f / maskWidth
val scaleY = bitmap.height * 1f / maskHeight
val isRawSizeMaskEnabled = maskWidth != bitmap.width || maskHeight != bitmap.height
val scaleX = bitmap.width * 1f / maskWidth
val scaleY = bitmap.height * 1f / maskHeight


val resultBitmap = Bitmap.createBitmap(bitmap.width, bitmap.height, Bitmap.Config.ARGB_8888)
val maskBitmap = Bitmap.createBitmap(
maskColorsFromByteBuffer(mask), maskWidth, maskHeight, Bitmap.Config.ARGB_8888
)
val resultBitmap = Bitmap.createBitmap(bitmap.width, bitmap.height, Bitmap.Config.ARGB_8888)
val maskBitmap = Bitmap.createBitmap(
maskColorsFromByteBuffer(mask), maskWidth, maskHeight, Bitmap.Config.ARGB_8888
)

val canvas = Canvas(resultBitmap)
val paint = Paint()
//绘制原始图片
canvas.drawBitmap(bitmap, 0f, 0f, null)
paint.strokeWidth = 6f
paint.style = Paint.Style.STROKE
paint.color = Color.RED
val matrix = Matrix()
if (isRawSizeMaskEnabled) {
matrix.preScale(scaleX, scaleY)
}
//绘制蒙版图层
canvas.drawBitmap(maskBitmap, matrix, null)
bitmap.recycle()

canvas.save()
canvas.restore()
val canvas = Canvas(resultBitmap)
val paint = Paint()
//绘制原始图片
canvas.drawBitmap(bitmap, 0f, 0f, null)
paint.strokeWidth = 6f
paint.style = Paint.Style.STROKE
paint.color = Color.RED
val matrix = Matrix()
if (isRawSizeMaskEnabled) {
matrix.preScale(scaleX, scaleY)
}
//绘制蒙版图层
canvas.drawBitmap(maskBitmap, matrix, null)
bitmap.recycle()

return resultBitmap
canvas.save()
canvas.restore()
resultBitmap
}
}

@ColorInt
Expand Down
Loading

0 comments on commit 62c2f49

Please sign in to comment.