翻譯|使用教程|編輯:楊鵬連|2020-08-05 14:02:40.380|閱讀 754 次
概述:Dynamsoft的Barcode Reader SDK是一個跨平臺的條形碼檢測和解碼庫。使用條形碼掃描SDK,開發人員可以輕松地在Windows,Linux和macOS上構建Java條形碼應用程序。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Dynamsoft Barcode Reader SDK一款多功能的條碼讀取控件,只需要幾行代碼就可以將條碼讀取功能嵌入到Web或桌面應用程序。這可以節省數月的開發時間和成本。能支持多種圖像文件格式以及從攝像機或掃描儀獲取的DIB格式。使用Dynamsoft Barcode Reader SDK,你可以創建強大且實用的條形碼掃描儀軟件,以滿足你的業務需求。
點擊下載Dynamsoft Barcode Reader最新版
完整的SDK套件
Java條碼快速入門
一個dynamsoft-barcodereader-7.5.jar文件位于下Dynamsoft條碼閱讀器\ lib文件夾中。您可以輕松地將jar文件導入到Java IDE(例如Eclipse)。如果使用的是Maven項目,則要添加依賴項,您需要按以下方式編輯pom.xml文件:
<repositories>
<repository>
<id>dbr </id>
<url>//download2.dynamsoft.com/maven/dbr/jar </url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.dynamsoft</groupId>
<artifactId>dbr</artifactId>
<version>7.5.0</version>
</dependency>
</dependencies>
這是顯示如何解碼圖像文件中條形碼的代碼段:import com.dynamsoft.barcode.*;
public class App {
public static void main(String[] args) {
String filename = "<file path>";
try {
BarcodeReader reader = new BarcodeReader(
"<Your trial license>");
TextResult[] results = reader.decodeFile( filename, "");
for (TextResult result : results) {
System.out.println(result.barcodeText);
}
} catch (Exception e) {
// TODO: handle exception
System.out.println(e);
}
}
}
高級API使用
加載模板文件和更新參數
BarcodeReader br = new BarcodeReader("<LICENSE-KEY>");
br.initRuntimeSettingsWithFile("balanced.json", EnumConflictMode.CM_OVERWRITE); // Load a template file
PublicRuntimeSettings runtimeSettings = br.getRuntimeSettings();
runtimeSettings.barcodeFormatIds = EnumBarcodeFormat.BF_PDF417 | EnumBarcodeFormat.BF_QR_CODE; // Update barcode formats
runtimeSettings.barcodeFormatIds_2 = EnumBarcodeFormat_2.BF2_DOTCODE;
br.updateRuntimeSettings(runtimeSettings);
模板配置很復雜。您可以使用在線條形碼工具來自定義算法模板,也可以從GitHub下載現有模板文件。
解碼文件流
您可以使用Spring框架來構建Web項目并在服務器端解碼上傳的圖像。假設您有以下代碼從多部分表單中獲取上傳的文件:
@PostMapping(value = "/api/dynamsoft"
, consumes = MediaType.MULTIPART_FORM_DATA_VALUE
, produces = MediaType.APPLICATION_JSON_VALUE)
public BarcodeResponse getDynamsoft(@RequestPart MultipartFile file) throws Exception {
return mDynamsoftBarcode.decode(file.getOriginalFilename(), file.getInputStream());
}
然后,您可以直接從文件流中解碼條形碼:InputStream inputStream = file.getInputStream(); TextResult[] results = br.decodeFileInMemory(inputStream, ""); inputStream.close();解碼Java OpenCV Mat
通過Maven安裝OpenCV Java:
<dependency> <groupId>org</groupId> <artifactId>opencv</artifactId> <version>4.3.0</version> </dependency>將幀捕獲到OpenCV Mat并從Mat解碼條形碼:
public static byte[] matToByteArray(Mat original)
{
int width = original.width(), height = original.height(), channels = original.channels();
byte[] sourcePixels = new byte[width * height * channels];
original.get(0, 0, sourcePixels);
return sourcePixels;
}
Mat frame = grabFrame();
TextResult[] results = reader.decodeBuffer(matToByteArray(frame), frame.width(), frame.height(), (int)frame.step1(), EnumImagePixelFormat.IPF_BGR_888, "");
解碼BufferedImage
將圖像文件讀取到BufferedImage:
import java.awt.image.*;
import javax.imageio.ImageIO;
BufferedImage image = null;
try {
image = ImageIO.read(new File(filename));
} catch (IOException e) {
System.out.println(e);
return;
}
從BufferedImage讀取條形碼:TextResult[] results = null;
try {
results = br.decodeBufferedImage(image, "");
} catch (Exception e) {
System.out.println("decode buffered image: " + e);
}
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉載自: