Java 및 Kotlin에서 데스크톱 바코드 스캐너를 빌드하는 방법
Gradle을 통해 Dynamsoft Barcode Reader 설치
Dynamsoft Barcode Reader을 가져오려면 download the SDK을 직접 구성하거나 자동 빌드 도구에 대해 Maven URL을 구성할 수 있습니다. Gradle을 사용하여 Java 또는 Kotlin 바코드 스캐너 프로젝트를 생성하는 것이 좋습니다.
단계는 다음과 같습니다.
새 Gradle 프로젝트를 만듭니다.
$ gradle init
Select type of project to generate:
1: basic
2: application
3: library
4: Gradle plugin
Enter selection (default: basic) [1..4]
Select implementation language:
1: C++
2: Groovy
3: Java
4: Kotlin
5: Scala
6: Swift
Enter selection (default: Java) [1..6]
Split functionality across multiple subprojects?:
1: no - only one application project
2: yes - application and library projects
Enter selection (default: no - only one application project) [1..2]
Select build script DSL:
1: Groovy
2: Kotlin
Enter selection (default: Kotlin) [1..2]
앱 > build.gradle로 이동하여 Dynamsoft에서 호스팅하는 Maven 리포지토리와 종속성을 추가합니다.
repositories {
// Use JCenter for resolving dependencies.
jcenter()
maven {
url "http://download2.dynamsoft.com/maven/dbr/jar"
}
}
dependencies {
// Use JUnit test framework.
testImplementation 'junit:junit:4.13'
// This dependency is used by the application.
implementation 'com.google.guava:guava:29.0-jre'
// Dynamsoft Barcode Reader SDK
implementation 'com.dynamsoft:dbr:8.1.2'
}
참고: Android 바코드 스캐너 프로젝트 빌드의 경우 URL과 패키지 이름이 다릅니다.
repositories {
maven {
url "http://download2.dynamsoft.com/maven/dbr/aar"
}
}
dependencies {
implementation 'com.dynamsoft:dynamsoftbarcodereader:latest.release@aar'
}
Windows, Linux 및 macOS용 Java 바코드 스캐너 애플리케이션
Dynamsoft Java Barcode SDK는 JNI(Java Native Interface)로 구현됩니다. 따라서 ZXing과 같은 순수한 Java SDK보다 더 나은 성능을 제공합니다. 기본 기술은 C++이지만 SDK는 여러 운영 체제에 대한 기본 라이브러리를 래핑했습니다.
App.java 또는 App.kt 파일을 열어 다음과 같이 바코드 판독기 개체를 인스턴스화할 수 있습니다.
// Java
import com.dynamsoft.dbr.*;
BarcodeReader br = new BarcodeReader(license);
// Kotlin
import com.dynamsoft.dbr.*
val br = BarcodeReader(license)
모든 API 기능을 잠금 해제하려면 here을 클릭하여 30일 무료 평가판 라이선스를 받으세요.
Dynamsoft는 개발자가 특정 시나리오에 대한 사용자 지정 알고리즘을 허용합니다. 따라서 free barcode online demo을 방문하여 매개변수 초기화를 위한 적절한 템플릿을 생성할 수 있습니다.
// Java
br.initRuntimeSettingsWithString("{\"ImageParameter\":{\"Name\":\"Balance\",\"DeblurLevel\":5,\"ExpectedBarcodesCount\":512,\"LocalizationModes\":[{\"Mode\":\"LM_CONNECTED_BLOCKS\"},{\"Mode\":\"LM_STATISTICS\"}]}}", EnumConflictMode.CM_OVERWRITE);
// Kotlin
br.initRuntimeSettingsWithString("{\"ImageParameter\":{\"Name\":\"Balance\",\"DeblurLevel\":5,\"ExpectedBarcodesCount\":512,\"LocalizationModes\":[{\"Mode\":\"LM_CONNECTED_BLOCKS\"},{\"Mode\":\"LM_STATISTICS\"}]}}", EnumConflictMode.CM_OVERWRITE)
다음 샘플 코드는 이미지 파일에서 바코드를 읽고 모든 결과를 인쇄하는 데 사용됩니다.
// Java
results = mBarcodeReader.decodeFile(file, "");
for (TextResult result : results) {
System.out.println(String.format(" Barcode %d:", index++));
if(result.barcodeFormat != 0){
System.out.println(" Type: " + result.barcodeFormatString);
} else {
System.out.println(" Type: " + result.barcodeFormatString_2);
}
System.out.println(" Value: " + result.barcodeText);
System.out.println(String.format(" Region points: {(%d,%d),(%d,%d),(%d,%d),(%d,%d)}",
result.localizationResult.resultPoints[0].x, result.localizationResult.resultPoints[0].y,
result.localizationResult.resultPoints[1].x,result.localizationResult.resultPoints[1].y,
result.localizationResult.resultPoints[2].x,result.localizationResult.resultPoints[2].y,
result.localizationResult.resultPoints[3].x,result.localizationResult.resultPoints[3].y));
}
// Kotlin
val results: Array<TextResult> = br.decodeFile(file, "")
for (result in results) {
println(String.format(" Barcode %d:", index++))
if (result.barcodeFormat != 0) {
System.out.println(" Type: " + result.barcodeFormatString)
} else {
System.out.println(" Type: " + result.barcodeFormatString_2)
}
System.out.println(" Value: " + result.barcodeText)
println(
java.lang.String.format(
" Region points: {(%d,%d),(%d,%d),(%d,%d),(%d,%d)}",
result.localizationResult.resultPoints.get(0).x,
result.localizationResult.resultPoints.get(0).y,
result.localizationResult.resultPoints.get(1).x,
result.localizationResult.resultPoints.get(1).y,
result.localizationResult.resultPoints.get(2).x,
result.localizationResult.resultPoints.get(2).y,
result.localizationResult.resultPoints.get(3).x,
result.localizationResult.resultPoints.get(3).y
)
)
}
몇 줄의 코드로 간단한 명령줄 바코드 스캐너가 완성됩니다.
다음은 흐릿한 QR 코드 이미지입니다.
이제 지정된 인수로 Gradle 명령을 실행할 수 있습니다.
./gradlew run --args="../../images/QR-Blurred.jpg ../../license.txt"
Travis CI를 사용하여 Java 애플리케이션 테스트
바코드 스캐너 애플리케이션이 크로스 플랫폼인지 확인하기 위해 GitHub 리포지토리에 대한 .travis.yml 파일을 생성합니다.
language: java
jobs:
include:
- name: "Linux"
os: linux
- name: "macOS"
os: osx
- name: "Windows"
os: windows
language: shell
before_install:
- choco install jdk8 -params 'installdir=c:\\jdk' -y;
- export JAVA_HOME=${JAVA_HOME:-/c/jdk};
env: PATH=/c/jdk/bin:$PATH
branches:
only:
- main
script:
- if [[ ${TRAVIS_OS_NAME} != "windows" ]]; then
chmod +x java/gradlew;
chmod +x kotlin/gradlew;
fi
- cd java
- ./gradlew test
- ./gradlew run --args="../../images/AllSupportedBarcodeTypes.png"
- cd ..
- cd kotlin
- ./gradlew test
- ./gradlew run --args="../../images/AllSupportedBarcodeTypes.png"
chmod +x
스크립트 파일이 Linux 및 macOS에서 작동하도록 하려면 ' gradlew
'를 추가해야 합니다.소스 코드
https://github.com/yushulx/gradle-java-kotlin-barcode-sample
Reference
이 문제에 관하여(Java 및 Kotlin에서 데스크톱 바코드 스캐너를 빌드하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/yushulx/how-to-build-desktop-barcode-scanner-in-java-and-kotlin-fhc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)