如何在C#中設置條碼裁剪區域

如何在 C# 中定義 BarCode 裁切區域以加快讀取速度

This article was translated from English: Does it need improvement?
Translated
View the article in English

使用 IronSoftware.Drawing.Rectangle 定義裁切區域,將 IronBarcode 的掃描範圍限制在特定影像區域,透過僅聚焦於相關區域,顯著提升 BarCode 讀取效能並減少錯誤。

IronBarcode 最重要的功能之一,就是能夠指定裁切區域。 此功能可讓 IronBarcode 透過 IronSoftware.Drawing.Rectangle 物件,僅讀取影像中由 CropRegion 指定的特定 BARCODE 或區域。 使用此功能不僅能減少閱讀錯誤,還能提升閱讀效率。 此技術在處理多頁文件或高解析度圖像時尤為實用,尤其當BarCode位置可預測時。

在處理含有多個BarCode或背景複雜的圖像時,定義裁切區域對於優化BarCode讀取速度至關重要。 透過限制掃描範圍,您可實現比掃描完整影像快達 5 倍的處理速度,同時減少來自非BarCode元素的誤判。

快速入門:定義並套用裁切區域以更快讀取BARCODE

只需幾秒鐘即可建立裁切矩形並將其傳入 IronBarcode —— 無需額外設定,操作流暢無阻。 看看使用 BarcodeReaderOptions 將掃描範圍限制在特定圖像區域是多麼簡單。

  1. using NuGet 套件管理員安裝 https://www.nuget.org/packages/BarCode

    PM > Install-Package BarCode
  2. 請複製並執行此程式碼片段。

    var results = IronBarCode.BarcodeReader.Read("image.png", new IronBarCode.BarcodeReaderOptions { CropArea = new IronSoftware.Drawing.Rectangle(x: 50, y: 100, width: 300, height: 150) });
  3. 部署至您的生產環境進行測試

    立即透過免費試用,在您的專案中開始使用 IronBarcode

    arrow pointer

如何在圖片中找出裁切區域的座標與尺寸?

有許多方法可以找出影像中某個點的座標。 其中一種方法是使用電腦上的"畫圖"應用程式載入該圖片。 要取得裁切區域的第一個座標,請將游標移至首選的起始點(即 Rectangle 的左上角),並記錄應用程式在螢幕左下角顯示的 x、y 座標。 接著,請定位第二個點,該點即為 Rectangle 的右下角。 請參閱下圖以獲得更清晰的理解。

針對更進階的應用情境,您亦可考慮使用 GIMP 或 Photoshop 等影像編輯軟體,這些工具提供精確的像素座標與測量功能。 部分開發人員傾向使用線上座標查找工具,或自行建立簡單的 HTML/JavaScript 輔助程式,以便在滑鼠懸停於圖片上時顯示座標。

Crop region diagram showing rectangular area with corner coordinates (x1,y1) and (x2,y2) and dimension calculations

我該使用哪些工具來確定座標?

這些座標值隨後可作為 Rectangle 物件的屬性使用。 該物件的 width 可定義為 x2 - x1,而 height 則可定義為 y2 - y1。 處理 BarCode 圖像時,需注意座標系以左上角 (0,0) 為起點,並隨著向右(x 軸)及向下(y 軸)移動而遞增。

幾種坐標確定方法包括:

  • 內建作業系統工具:Windows 畫圖、macOS 預覽
  • 瀏覽器開發者工具:檢視網頁上圖片的元素
  • Professional software: Adobe Photoshop、GIMP
  • 自訂工具:簡單的座標檢視器應用程式
  • IronBarcode 的除錯功能:匯出帶有座標疊加層的處理後影像

如何根據座標計算矩形尺寸?

一旦確定了兩個角點,計算尺寸便十分簡單。 該矩形需要四個參數:x 座標、y 座標、寬度和高度。 以下是正確建立裁切區域實例的方法:

:path=/static-assets/barcode/content-code-examples/how-to/set-crop-region-instantiate-CropRegion.cs
using IronBarCode;

int x1 = 62;
int y1 = 29;
int x2 = 345;
int y2 = 522;

IronSoftware.Drawing.Rectangle crop1 = new IronSoftware.Drawing.Rectangle(x: x1, y: y1, width: x2-x1, height: y2-y1);
Imports IronBarCode

Private x1 As Integer = 62
Private y1 As Integer = 29
Private x2 As Integer = 345
Private y2 As Integer = 522

Private crop1 As New IronSoftware.Drawing.Rectangle(x:= x1, y:= y1, width:= x2-x1, height:= y2-y1)
$vbLabelText   $csharpLabel

此座標系統能與 IronBarcode 的影像校正功能無縫整合,讓您僅對影像的特定區域套用濾鏡。

如何應用 CropRegion 並讀取 BARCODE?

在定義好 IronBarcode 需讀取的 CropRegions 位置後,即可將該物件作為其中一項屬性,連同其他設定一併套用至 BarcodeReaderOptions 中。 此內容可作為 BarcodeReader.Read() 方法的參數使用。 以下程式碼片段展示了此流程:

BarcodeReaderOptions 接受哪些參數?

BarcodeReaderOptions 類別可對 BARCODE 讀取流程進行全面控制。 除了裁切區域外,您還可以設定:

  • 速度優化:透過速度設定在準確性與效能之間取得平衡
  • BarCode類型:指定要搜尋的確切格式(支援的格式
  • 影像濾鏡:針對傾斜或受損的 BARCODE 進行修正
  • 多執行緒:啟用平行處理以提升效能
  • 旋轉處理:自動偵測旋轉的BarCode

如何處理裁切區域中的多個BarCode結果?

當掃描包含多個 BarCode 的裁切區域時,IronBarcode 會傳回一組結果。 每個結果都包含有價值的元資料,包括在裁切區域內的精確位置、BarCode類型以及解碼後的值。 以下是實現全面裁切區域處理的方法:

:path=/static-assets/barcode/content-code-examples/how-to/set-crop-region-apply-CropRegion.cs
using IronBarCode;
using System;

int x1 = 62;
int y1 = 29;
int x2 = 345;
int y2 = 522;

IronSoftware.Drawing.Rectangle crop1 = new IronSoftware.Drawing.Rectangle(x: x1, y: y1, width: x2 - x1, height: y2 - y1);

BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    CropArea = crop1
};

var result = BarcodeReader.Read("sample.png", options);
foreach (var item in result)
{
    Console.WriteLine(item.Value);
}
Imports IronBarCode
Imports System

Private x1 As Integer = 62
Private y1 As Integer = 29
Private x2 As Integer = 345
Private y2 As Integer = 522

Private crop1 As New IronSoftware.Drawing.Rectangle(x:= x1, y:= y1, width:= x2 - x1, height:= y2 - y1)

Private options As New BarcodeReaderOptions() With {.CropArea = crop1}

Private result = BarcodeReader.Read("sample.png", options)
For Each item In result
	Console.WriteLine(item.Value)
Next item
$vbLabelText   $csharpLabel

從上方的程式碼片段中,我們將 Rectangle 物件中實例化的 BarcodeReaderOptions 作為 CropArea 屬性使用。 接著,我們將此 BarcodeReaderOptions 物件作為 BarcodeReader.Read() 方法的參數,對圖片套用 CropArea 並讀取其中的 BARCODE。

進階裁切區域技術

針對生產環境的應用程式,請考慮以下進階策略:

  1. 動態裁切區域:根據文件範本或 OCR 結果計算裁切範圍
  2. 多重區域:針對單一影像處理多個裁切區域,以實現複雜的版面配置
  3. 效能優化:結合裁切區域與非同步處理,以實現最大吞吐量
  4. 錯誤處理:當未在預期區域內找到BARCODE時,應實施備用策略

處理 PDF 文件時,您可以對特定頁面套用裁切區域,大幅縮短大型檔案的處理時間。 這對於發票、運送標籤或表單等BARCODE位置標準化的情境特別有用。

裁切區域定義的最佳實務

要最大化裁切區域的效能:

  • 添加緩衝區:在預期 BarCode 位置周圍預留 10 至 20 像素的空間,以因應輕微的誤差
  • 徹底測試:驗證裁切區域在整個文件集中的運作情況
  • 文件座標:為您的應用程式維護一份常用裁切區域的參考表
  • 考量縮放:需顧及不同的影像解析度或 DPI 設定
  • 監控效能:追蹤處理時間以驗證裁切區域的有效性

對於需要容錯能力的應用,請採用兩階段處理方式:首先掃描裁切區域,若在預期區域內未發現BarCode,則改為掃描整張圖片。

結論

定義裁切區域是優化 .NET 應用程式中 BarCode 讀取效能的一項強大技術。 透過將掃描範圍限制在特定區域,您不僅能顯著提升速度,還能減少誤判。 無論您是處理單張圖片還是批次作業,裁切區域都能提供生產環境所需的精準度與效能。

常見問題

什麼是條碼裁剪區域,為什麼我應該使用它?

條碼裁剪區域是影像中的特定區域,IronBarcode專注於此進行掃描。通過使用IronSoftware.Drawing.Rectangle定義裁剪區域,您可以通過限制掃描至影像的相關區域,實現高達5倍的條碼讀取速度,同時減少錯誤。

如何為條碼讀取定義裁剪區域?

您可以通過創建IronSoftware.Drawing.Rectangle對象,並指定特定坐標(x, y)和尺寸(width, height),然後在調用Read方法時將它傳遞給BarcodeReaderOptions.CropArea屬性來定義裁剪區域。

使用裁剪區域可以預期哪些性能提升?

與掃描整個影像相比,IronBarcode的裁剪區域功能可以提升條碼讀取性能高達5倍。這對於處理多頁文件或高解析度影像中條碼位置可預測的情況尤其有利。

如何找到裁剪區域的正確坐標?

您可以使用圖像編輯軟體,如Microsoft Paint、GIMP或Photoshop,查找裁剪區域的坐標。只需打開影像,將游標移至想要的區域左上角,記下x,y坐標,然後找到右下角的坐標以確定在IronBarcode中的Rectangle的寬度和高度。

什麼時候使用裁剪區域特別有用?

當處理包含多個條碼、複雜背景、多頁文件或高解析度圖片且條碼位置一致且可預測的影像時,IronBarcode中的裁剪區域尤其有價值。

使用IronBarcode進行條碼操作有什麼好處?

IronBarcode提供了如易於整合、支持多種條碼格式、高品質圖像生成和強大讀取能力等好處,使其成為C#中條碼操作的全面工具。

IronBarcode是否提供自定義條碼外觀的支持?

是的,IronBarcode提供了廣泛的條碼外觀自定義選項,包括顏色、大小和文字註釋,讓您可以根據具體設計需求定制條碼。

IronBarcode如何幫助改善業務流程效率?

IronBarcode通過使條碼生成和讀取快速且準確來提高業務流程效率,減少手動數據輸入錯誤,並改善庫存和資產追蹤。

將IronBarcode實現於專案中需要什麼程式設計技能?

基本的C#程式設計知識足以將IronBarcode實現於專案中,因為它提供了簡單的方法和全面的文檔來指導開發者。

IronBarcode適合於小型專案和大型企業應用嗎?

IronBarcode設計為可擴展且多功能,使其適合小型專案和需要強大條碼解決方案的大型企業應用。

Hairil Hasyimi Bin Omar
軟體工程師
如同所有傑出的工程師,Hairil 是一位熱衷學習的人。他正不斷精進自己在 C#、Python 和 Java 方面的知識,並運用這些知識為 Iron Software 的團隊成員創造價值。Hairil 從馬來西亞馬拉科技大學(Universiti Teknologi MARA)加入 Iron Software 團隊,他在該校取得化學與製程工程學士學位。
準備好開始了嗎?
Nuget 下載 2,240,258 | 版本: 2026.5 just released
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package BarCode
執行範例 看您的字串變成 BarCode。