Skip to content

Commit 67633cb

Browse files
committed
优化细节
1 parent 05b86a5 commit 67633cb

File tree

6 files changed

+108
-16
lines changed

6 files changed

+108
-16
lines changed

README.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -81,27 +81,27 @@ allprojects {
8181

8282
```gradle
8383
// OpenCV基础库(*必须)
84-
implementation 'com.github.jenly1314.WeChatQRCode:opencv:1.1.0'
85-
implementation 'com.github.jenly1314.WeChatQRCode:opencv-armv7a:1.1.0'
84+
implementation 'com.github.jenly1314.WeChatQRCode:opencv:1.1.1'
85+
implementation 'com.github.jenly1314.WeChatQRCode:opencv-armv7a:1.1.1'
8686
8787
// OpenCV的其他ABI(可选),根据你的需求选择想要的so支持
88-
implementation 'com.github.jenly1314.WeChatQRCode:opencv-armv64:1.1.0'
89-
implementation 'com.github.jenly1314.WeChatQRCode:opencv-x86:1.1.0'
90-
implementation 'com.github.jenly1314.WeChatQRCode:opencv-x86_64:1.1.0'
88+
implementation 'com.github.jenly1314.WeChatQRCode:opencv-armv64:1.1.1'
89+
implementation 'com.github.jenly1314.WeChatQRCode:opencv-x86:1.1.1'
90+
implementation 'com.github.jenly1314.WeChatQRCode:opencv-x86_64:1.1.1'
9191
9292
// 微信二维码识别功能(可选)
93-
implementation 'com.github.jenly1314.WeChatQRCode:wechat-qrcode:1.1.0'
93+
implementation 'com.github.jenly1314.WeChatQRCode:wechat-qrcode:1.1.1'
9494
9595
// 微信二维码扫码功能(可选)
96-
implementation 'com.github.jenly1314.WeChatQRCode:wechat-qrcode-scanning:1.1.0'
96+
implementation 'com.github.jenly1314.WeChatQRCode:wechat-qrcode-scanning:1.1.1'
9797
//MLKit的Camera核心库:如果您使用了wechat-qrcode-scanning,则必须依赖mlkit-camera-core库
98-
implementation 'com.github.jenly1314.MLKit:mlkit-camera-core:1.0.2'
98+
implementation 'com.github.jenly1314.MLKit:mlkit-camera-core:1.0.3'
9999
100100
```
101101

102102
## 示例
103103

104-
初始化 **OpenCV****WeChatQRCodeDetector** (建议在 **Application****onCreate** 方法中初始化)
104+
初始化 **OpenCV****WeChatQRCodeDetector** (建议在 **MainActivity****onCreate** 方法中初始化)
105105
```kotlin
106106
//初始化OpenCV
107107
OpenCV.initAsync(context)
@@ -176,6 +176,7 @@ class WeChatQRCodeActivity : WeChatCameraScanActivity() {
176176
## 版本记录
177177

178178
#### v1.1.1:2021-11-2
179+
* 优化细节
179180
* 更新mlkit-camera-core至v1.0.3
180181

181182
#### v1.1.0:2021-8-6

app/release/app-release.apk

9.49 MB
Binary file not shown.

app/release/output-metadata.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"version": 2,
3+
"artifactType": {
4+
"type": "APK",
5+
"kind": "Directory"
6+
},
7+
"applicationId": "com.king.wechat.qrcode.app",
8+
"variantName": "release",
9+
"elements": [
10+
{
11+
"type": "SINGLE",
12+
"filters": [],
13+
"versionCode": 4,
14+
"versionName": "1.1.1",
15+
"outputFile": "app-release.apk"
16+
}
17+
]
18+
}

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ android.useAndroidX = true
1818
# Kotlin code style for this project: "official" or "obsolete":
1919
kotlin.code.style = official
2020

21-
VERSION_NAME=1.1.0
22-
VERSION_CODE=3
21+
VERSION_NAME=1.1.1
22+
VERSION_CODE=4
2323
GROUP=com.github.jenly1314.WeChatQRCode
2424

2525
POM_DESCRIPTION=Wechat QRCode

versions.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//App
22
def app_version = [:]
3-
app_version.versionCode = 3
4-
app_version.versionName = "1.1.0"
3+
app_version.versionCode = 4
4+
app_version.versionName = "1.1.1"
55
ext.app_version = app_version
66

77
//build version

wechat-qrcode-scanning/src/main/java/com/king/wechat/qrcode/scanning/analyze/WeChatScanningAnalyzer.java

Lines changed: 76 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,100 @@
77
import com.king.mlkit.vision.camera.util.BitmapUtils;
88
import com.king.mlkit.vision.camera.util.LogUtils;
99
import com.king.wechat.qrcode.WeChatQRCodeDetector;
10+
11+
import org.opencv.core.Mat;
12+
13+
import java.util.ArrayList;
1014
import java.util.List;
1115

1216
import androidx.annotation.NonNull;
17+
import androidx.annotation.Nullable;
1318
import androidx.camera.core.ImageProxy;
1419

1520
/**
1621
* @author <a href="mailto:jenly1314@gmail.com">Jenly</a>
1722
*/
1823
public class WeChatScanningAnalyzer implements Analyzer<List<String>> {
24+
25+
/**
26+
* 是否需要返回二维码的各个顶点
27+
*/
28+
private boolean isNeedVertices;
29+
30+
public WeChatScanningAnalyzer(){
31+
this(false);
32+
}
33+
34+
/**
35+
* 构造
36+
* @param isNeedVertices 是否需要返回二维码的各个顶点
37+
*/
38+
public WeChatScanningAnalyzer(boolean isNeedVertices){
39+
this.isNeedVertices = isNeedVertices;
40+
}
41+
1942
@Override
2043
public void analyze(@NonNull ImageProxy imageProxy, @NonNull Analyzer.OnAnalyzeListener<AnalyzeResult<List<String>>> listener) {
2144
try {
2245
final Bitmap bitmap = BitmapUtils.getBitmap(imageProxy);
23-
List<String> result = WeChatQRCodeDetector.detectAndDecode(bitmap);
24-
if(result != null && result.size() > 0){
25-
listener.onSuccess(new AnalyzeResult<>(bitmap,result));
46+
AnalyzeResult<List<String>> result = detectAndDecode(bitmap, isNeedVertices);
47+
if(result != null){
48+
listener.onSuccess(result);
2649
}else{
2750
listener.onFailure();
2851
}
2952
} catch (Exception e) {
3053
LogUtils.w(e);
3154
}
3255
}
56+
57+
/**
58+
* 检测并识别二维码
59+
* @param bitmap
60+
* @param isNeedVertices
61+
* @return
62+
*/
63+
@Nullable
64+
private AnalyzeResult<List<String>> detectAndDecode(Bitmap bitmap,boolean isNeedVertices) {
65+
if(isNeedVertices){//如果需要返回二维码的各个顶点
66+
final List<Mat> points = new ArrayList<>();
67+
List<String> result = WeChatQRCodeDetector.detectAndDecode(bitmap, points);
68+
if(result != null && result.size() > 0){
69+
return new QRCodeAnalyzeResult<>(bitmap, result, points);
70+
}
71+
}else{//反之则需识别结果即可
72+
List<String> result = WeChatQRCodeDetector.detectAndDecode(bitmap);
73+
if(result != null && result.size() > 0){
74+
return new QRCodeAnalyzeResult<>(bitmap, result);
75+
}
76+
}
77+
78+
return null;
79+
}
80+
81+
public static class QRCodeAnalyzeResult<T> extends AnalyzeResult<T> {
82+
83+
private List<Mat> points;
84+
85+
public QRCodeAnalyzeResult() {
86+
super();
87+
}
88+
89+
public QRCodeAnalyzeResult(Bitmap bitmap, T result) {
90+
super(bitmap,result);
91+
}
92+
93+
public QRCodeAnalyzeResult(Bitmap bitmap, T result,List<Mat> points) {
94+
super(bitmap,result);
95+
this.points = points;
96+
}
97+
98+
public List<Mat> getPoints() {
99+
return points;
100+
}
101+
102+
public void setPoints(List<Mat> points) {
103+
this.points = points;
104+
}
105+
}
33106
}

0 commit comments

Comments
 (0)