Skip to content

Commit 1170c9c

Browse files
committed
发布v2.2.1
1 parent 21044b6 commit 1170c9c

File tree

32 files changed

+123
-161
lines changed

32 files changed

+123
-161
lines changed

README.md

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -106,36 +106,36 @@ Camera:为各个子库提供相机预览分析的核心库
106106
```gradle
107107
108108
//公共库 (*必须)
109-
implementation 'com.github.jenly1314.MLKit:mlkit-common:2.2.0'
109+
implementation 'com.github.jenly1314.MLKit:mlkit-common:2.2.1'
110110
111111
//--------------------------
112112
113113
//条码识别 (可选)
114-
implementation 'com.github.jenly1314.MLKit:mlkit-barcode-scanning:2.2.0'
114+
implementation 'com.github.jenly1314.MLKit:mlkit-barcode-scanning:2.2.1'
115115
116116
//人脸检测 (可选)
117-
implementation 'com.github.jenly1314.MLKit:mlkit-face-detection:2.2.0'
117+
implementation 'com.github.jenly1314.MLKit:mlkit-face-detection:2.2.1'
118118
119119
//人脸网格检测 (可选)
120-
implementation 'com.github.jenly1314.MLKit:mlkit-face-mesh-detection:2.2.0'
120+
implementation 'com.github.jenly1314.MLKit:mlkit-face-mesh-detection:2.2.1'
121121
122122
//图像标签 (可选)
123-
implementation 'com.github.jenly1314.MLKit:mlkit-image-labeling:2.2.0'
123+
implementation 'com.github.jenly1314.MLKit:mlkit-image-labeling:2.2.1'
124124
125125
//对象检测 (可选)
126-
implementation 'com.github.jenly1314.MLKit:mlkit-object-detection:2.2.0'
126+
implementation 'com.github.jenly1314.MLKit:mlkit-object-detection:2.2.1'
127127
128128
//姿势检测 (可选)
129-
implementation 'com.github.jenly1314.MLKit:mlkit-pose-detection:2.2.0'
129+
implementation 'com.github.jenly1314.MLKit:mlkit-pose-detection:2.2.1'
130130
131131
//姿势检测精确版 (可选)
132-
implementation 'com.github.jenly1314.MLKit:mlkit-pose-detection-accurate:2.2.0'
132+
implementation 'com.github.jenly1314.MLKit:mlkit-pose-detection-accurate:2.2.1'
133133
134134
//自拍分割 (可选)
135-
implementation 'com.github.jenly1314.MLKit:mlkit-segmentation-selfie:2.2.0'
135+
implementation 'com.github.jenly1314.MLKit:mlkit-segmentation-selfie:2.2.1'
136136
137137
//文字识别 (可选)
138-
implementation 'com.github.jenly1314.MLKit:mlkit-text-recognition:2.2.0'
138+
implementation 'com.github.jenly1314.MLKit:mlkit-text-recognition:2.2.1'
139139
140140
```
141141
@@ -329,6 +329,9 @@ compileOptions {
329329

330330
## 版本记录
331331

332+
#### v2.2.1:2024-8-8
333+
* 优化细节
334+
332335
#### v2.2.0:2024-7-11
333336
* 更新CameraScan至v1.2.0
334337
* 更新ViewfinderView至v1.2.0

app/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ dependencies {
5353
implementation deps.corektx
5454

5555
implementation deps.app_dialog
56+
implementation deps.logx
5657

5758
implementation project(':mlkit-common')
5859
implementation project(':mlkit-barcode-scanning')

app/release/app-release.apk

10.3 KB
Binary file not shown.

app/release/output-metadata.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
"type": "SINGLE",
1212
"filters": [],
1313
"attributes": [],
14-
"versionCode": 12,
15-
"versionName": "2.2.0",
14+
"versionCode": 13,
15+
"versionName": "2.2.1",
1616
"outputFile": "app-release.apk"
1717
}
1818
],

app/src/main/java/com/king/mlkit/vision/app/MainActivity.kt

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package com.king.mlkit.vision.app
1717

1818
import android.content.Intent
19+
import android.graphics.ImageDecoder
1920
import android.net.Uri
2021
import android.os.Bundle
2122
import android.provider.MediaStore
@@ -27,10 +28,12 @@ import com.google.mlkit.vision.barcode.common.Barcode
2728
import com.king.app.dialog.AppDialog
2829
import com.king.app.dialog.AppDialogConfig
2930
import com.king.camera.scan.CameraScan
30-
import com.king.camera.scan.util.LogUtils
31+
import com.king.logx.LogX
3132
import com.king.mlkit.vision.app.barcode.BarcodeScanningActivity
3233
import com.king.mlkit.vision.app.barcode.MultipleQRCodeScanningActivity
3334
import com.king.mlkit.vision.app.barcode.QRCodeScanningActivity
35+
import com.king.mlkit.vision.app.ext.drawRect
36+
import com.king.mlkit.vision.app.ext.getBitmap
3437
import com.king.mlkit.vision.app.face.FaceDetectionActivity
3538
import com.king.mlkit.vision.app.face.FaceMeshDetectionActivity
3639
import com.king.mlkit.vision.app.face.MultipleFaceDetectionActivity
@@ -98,9 +101,9 @@ class MainActivity : AppCompatActivity() {
98101
).addOnSuccessListener(this) { result ->
99102
if (result.isNotEmpty()) {
100103
val buffer = StringBuilder()
101-
val srcBitmap = MediaStore.Images.Media.getBitmap(contentResolver, it)
104+
102105
// 成功;在图片上框出结果
103-
val bitmap = srcBitmap.drawRect { canvas, paint ->
106+
val bitmap = getBitmap(it).drawRect { canvas, paint ->
104107
for ((index, barcode) in result.withIndex()) {
105108
buffer.append("[$index] ").append(barcode.displayValue)
106109
.append("\n")
@@ -120,15 +123,15 @@ class MainActivity : AppCompatActivity() {
120123
AppDialog.INSTANCE.showDialog(config)
121124
} else {
122125
// 没有结果
123-
LogUtils.d("result is empty")
126+
LogX.d("result is empty")
124127
showToast("result is empty")
125128
}
126129
}.addOnFailureListener(this) { e ->
127130
// 失败
128-
LogUtils.w(e)
131+
LogX.w(e)
129132
}
130133
} catch (e: Exception) {
131-
LogUtils.w(e)
134+
LogX.w(e)
132135
}
133136
}
134137
}

app/src/main/java/com/king/mlkit/vision/app/barcode/BarcodeScanningActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import com.king.app.dialog.AppDialogConfig
2222
import com.king.camera.scan.AnalyzeResult
2323
import com.king.camera.scan.CameraScan
2424
import com.king.mlkit.vision.app.R
25-
import com.king.mlkit.vision.app.drawRect
25+
import com.king.mlkit.vision.app.ext.drawRect
2626
import com.king.mlkit.vision.barcode.BarcodeCameraScanActivity
2727

2828
/**
@@ -38,7 +38,7 @@ class BarcodeScanningActivity : BarcodeCameraScanActivity() {
3838
}
3939

4040
override fun onScanResultCallback(result: AnalyzeResult<MutableList<Barcode>>) {
41-
41+
// 停止分析
4242
cameraScan.setAnalyzeImage(false)
4343
val buffer = StringBuilder()
4444
val bitmap = result.bitmap?.drawRect { canvas, paint ->

app/src/main/java/com/king/mlkit/vision/app/barcode/MultipleQRCodeScanningActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import com.king.app.dialog.AppDialogConfig
2222
import com.king.camera.scan.AnalyzeResult
2323
import com.king.camera.scan.CameraScan
2424
import com.king.mlkit.vision.app.R
25-
import com.king.mlkit.vision.app.drawRect
25+
import com.king.mlkit.vision.app.ext.drawRect
2626
import com.king.mlkit.vision.barcode.QRCodeCameraScanActivity
2727

2828
/**
@@ -42,7 +42,7 @@ class MultipleQRCodeScanningActivity : QRCodeCameraScanActivity() {
4242
}
4343

4444
override fun onScanResultCallback(result: AnalyzeResult<MutableList<Barcode>>) {
45-
45+
// 停止分析
4646
cameraScan.setAnalyzeImage(false)
4747

4848
val buffer = StringBuilder()

app/src/main/java/com/king/mlkit/vision/app/barcode/QRCodeScanningActivity.kt

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package com.king.mlkit.vision.app.barcode
1818
import android.content.Intent
1919
import android.graphics.Point
2020
import android.widget.ImageView
21+
import androidx.activity.OnBackPressedCallback
2122
import com.google.mlkit.vision.barcode.common.Barcode
2223
import com.king.camera.scan.AnalyzeResult
2324
import com.king.camera.scan.CameraScan
@@ -37,6 +38,20 @@ class QRCodeScanningActivity : QRCodeCameraScanActivity() {
3738
super.initUI()
3839

3940
ivResult = findViewById(R.id.ivResult)
41+
42+
onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
43+
override fun handleOnBackPressed() {
44+
if (viewfinderView.isShowPoints) {
45+
// 如果是结果点显示时,用户点击了返回键,则认为是取消选择当前结果,重新开始扫码
46+
ivResult.setImageResource(0)
47+
viewfinderView.showScanner()
48+
cameraScan.setAnalyzeImage(true)
49+
} else {
50+
finish()
51+
}
52+
}
53+
54+
})
4055
}
4156

4257
override fun initCameraScan(cameraScan: CameraScan<MutableList<Barcode>>) {
@@ -50,26 +65,17 @@ class QRCodeScanningActivity : QRCodeCameraScanActivity() {
5065
return R.layout.qrcode_scan_activity
5166
}
5267

53-
override fun onBackPressed() {
54-
if (viewfinderView.isShowPoints) {//如果是结果点显示时,用户点击了返回键,则认为是取消选择当前结果,重新开始扫码
55-
ivResult.setImageResource(0)
56-
viewfinderView.showScanner()
57-
cameraScan.setAnalyzeImage(true)
58-
return
59-
}
60-
super.onBackPressed()
61-
}
6268

6369
override fun onScanResultCallback(result: AnalyzeResult<MutableList<Barcode>>) {
64-
70+
// 停止分析
6571
cameraScan.setAnalyzeImage(false)
6672
val results = result.result
6773

6874
//取预览当前帧图片并显示,为结果点提供参照
6975
ivResult.setImageBitmap(previewView.bitmap)
7076
val points = ArrayList<Point>()
71-
var width = result.bitmapWidth
72-
var height = result.bitmapHeight
77+
val width = result.imageWidth
78+
val height = result.imageHeight
7379
for (barcode in results) {
7480
barcode.boundingBox?.let { box ->
7581
//将实际的结果中心点坐标转换成界面预览的坐标

app/src/main/java/com/king/mlkit/vision/app/Function.kt renamed to app/src/main/java/com/king/mlkit/vision/app/ext/Function.kt

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,24 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package com.king.mlkit.vision.app
16+
package com.king.mlkit.vision.app.ext
1717

18+
import android.content.Context
1819
import android.graphics.Bitmap
1920
import android.graphics.Canvas
2021
import android.graphics.Color
22+
import android.graphics.ImageDecoder
2123
import android.graphics.Paint
22-
import com.king.camera.scan.util.LogUtils
24+
import android.net.Uri
25+
import android.os.Build
26+
import android.provider.MediaStore
27+
import com.king.logx.LogX
2328

2429
/**
2530
* @author <a href="mailto:[email protected]">Jenly</a>
2631
*/
2732
fun Bitmap.drawRect(block: (canvas: Canvas, paint: Paint) -> Unit): Bitmap {
28-
var result = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)
33+
val result = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)
2934
try {
3035
val canvas = Canvas(result)
3136
canvas.drawBitmap(this, 0f, 0f, null)
@@ -34,13 +39,25 @@ fun Bitmap.drawRect(block: (canvas: Canvas, paint: Paint) -> Unit): Bitmap {
3439
paint.style = Paint.Style.STROKE
3540
paint.color = Color.RED
3641

37-
block(canvas,paint)
42+
block(canvas, paint)
3843

3944
canvas.save()
4045
canvas.restore()
4146
} catch (e: Exception) {
42-
LogUtils.w(e.message)
47+
LogX.w(e)
4348
}
4449
return result
4550
}
4651

52+
/**
53+
* 获取[Bitmap]
54+
*/
55+
fun Context.getBitmap(uri: Uri): Bitmap {
56+
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
57+
val source = ImageDecoder.createSource(contentResolver, uri)
58+
ImageDecoder.decodeBitmap(source).copy(Bitmap.Config.ARGB_8888, true)
59+
} else {
60+
MediaStore.Images.Media.getBitmap(contentResolver, uri)
61+
}
62+
}
63+

app/src/main/java/com/king/mlkit/vision/app/face/FaceDetectionActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import com.king.app.dialog.AppDialog
2121
import com.king.app.dialog.AppDialogConfig
2222
import com.king.camera.scan.AnalyzeResult
2323
import com.king.mlkit.vision.app.R
24-
import com.king.mlkit.vision.app.drawRect
24+
import com.king.mlkit.vision.app.ext.drawRect
2525
import com.king.mlkit.vision.face.FaceCameraScanActivity
2626

2727
/**

app/src/main/java/com/king/mlkit/vision/app/face/FaceMeshDetectionActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import com.king.app.dialog.AppDialog
2121
import com.king.app.dialog.AppDialogConfig
2222
import com.king.camera.scan.AnalyzeResult
2323
import com.king.mlkit.vision.app.R
24-
import com.king.mlkit.vision.app.drawRect
24+
import com.king.mlkit.vision.app.ext.drawRect
2525
import com.king.mlkit.vision.facemesh.FaceMeshCameraScanActivity
2626

2727
/**

app/src/main/java/com/king/mlkit/vision/app/face/MultipleFaceDetectionActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import com.king.mlkit.vision.face.analyze.FaceDetectionAnalyzer
1111
*/
1212
class MultipleFaceDetectionActivity : FaceDetectionActivity() {
1313

14-
override fun createAnalyzer(): Analyzer<MutableList<Face>>? {
14+
override fun createAnalyzer(): Analyzer<MutableList<Face>> {
1515
return FaceDetectionAnalyzer(
1616
FaceDetectorOptions.Builder()
1717
.setPerformanceMode(FaceDetectorOptions.PERFORMANCE_MODE_ACCURATE)

app/src/main/java/com/king/mlkit/vision/app/object/MultipleObjectDetectionActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import com.king.mlkit.vision.`object`.analyze.ObjectDetectionAnalyzer
1111
*/
1212
class MultipleObjectDetectionActivity : ObjectDetectionActivity() {
1313

14-
override fun createAnalyzer(): Analyzer<MutableList<DetectedObject>>? {
14+
override fun createAnalyzer(): Analyzer<MutableList<DetectedObject>> {
1515
return ObjectDetectionAnalyzer(
1616
ObjectDetectorOptions.Builder()
1717
.setDetectorMode(ObjectDetectorOptions.SINGLE_IMAGE_MODE)

app/src/main/java/com/king/mlkit/vision/app/object/ObjectDetectionActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import com.king.app.dialog.AppDialog
2121
import com.king.app.dialog.AppDialogConfig
2222
import com.king.camera.scan.AnalyzeResult
2323
import com.king.mlkit.vision.app.R
24-
import com.king.mlkit.vision.app.drawRect
24+
import com.king.mlkit.vision.app.ext.drawRect
2525
import com.king.mlkit.vision.`object`.ObjectCameraScanActivity
2626

2727
/**

app/src/main/java/com/king/mlkit/vision/app/pose/AccuratePoseDetectionActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import com.king.app.dialog.AppDialog
66
import com.king.app.dialog.AppDialogConfig
77
import com.king.camera.scan.AnalyzeResult
88
import com.king.mlkit.vision.app.R
9-
import com.king.mlkit.vision.app.drawRect
9+
import com.king.mlkit.vision.app.ext.drawRect
1010
import com.king.mlkit.vision.pose.accurate.AccuratePoseCameraScanActivity
1111

1212
/**
@@ -16,7 +16,7 @@ import com.king.mlkit.vision.pose.accurate.AccuratePoseCameraScanActivity
1616
class AccuratePoseDetectionActivity : AccuratePoseCameraScanActivity() {
1717

1818
override fun onScanResultCallback(result: AnalyzeResult<Pose>) {
19-
if (result.result.allPoseLandmarks.isNullOrEmpty()) {
19+
if (result.result.allPoseLandmarks.isEmpty()) {
2020
// 过滤掉空数据,继续分析
2121
cameraScan.setAnalyzeImage(true)
2222
return

app/src/main/java/com/king/mlkit/vision/app/pose/PoseDetectionActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import com.king.app.dialog.AppDialog
66
import com.king.app.dialog.AppDialogConfig
77
import com.king.camera.scan.AnalyzeResult
88
import com.king.mlkit.vision.app.R
9-
import com.king.mlkit.vision.app.drawRect
9+
import com.king.mlkit.vision.app.ext.drawRect
1010
import com.king.mlkit.vision.pose.PoseCameraScanActivity
1111

1212
/**
@@ -17,7 +17,7 @@ class PoseDetectionActivity : PoseCameraScanActivity() {
1717

1818
override fun onScanResultCallback(result: AnalyzeResult<Pose>) {
1919

20-
if (result.result.allPoseLandmarks.isNullOrEmpty()) {
20+
if (result.result.allPoseLandmarks.isEmpty()) {
2121
// 过滤掉空数据,继续分析
2222
cameraScan.setAnalyzeImage(true)
2323
return

app/src/main/java/com/king/mlkit/vision/app/text/TextRecognitionActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class TextRecognitionActivity : TextCameraScanActivity() {
5454
AppDialog.INSTANCE.showDialog(config, false)
5555
}
5656

57-
override fun createAnalyzer(): Analyzer<Text>? {
57+
override fun createAnalyzer(): Analyzer<Text> {
5858
return TextRecognitionAnalyzer(ChineseTextRecognizerOptions.Builder().build())
5959
}
6060
}

0 commit comments

Comments
 (0)