IronBarcode 如何使用 .NET 從影像讀取 BarCode 如何使用 C# 從影像中讀取條碼 Hairil Hasyimi Bin Omar 更新:7月 22, 2025 下載 IronBarcode NuGet 下載 DLL 下載 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在雙子座打開 請向 Gemini 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 This article was translated from English: Does it need improvement? Translated View the article in English IronBarcode 的一個關鍵特性是它能夠開箱即用地讀取多種影像格式的條碼。 IronBarcode目前支援以下影像格式: 可縮放向量圖形 (SVG) 聯合影像專家小組 (JPEG) 可攜式網路圖形 (PNG) 圖形交換格式 (GIF) 標籤影像檔案格式 (TIFF) 點陣圖影像檔(BMP) This is made possible with the help of our open source library, IronDrawing. 快速入門:幾秒鐘內從圖像中讀取條碼 只需簡單呼叫一次 IronBarCode.BarcodeReader.Read(),即可直接從 PNG、JPEG、GIF、BMP 和 TIFF 等影像檔案格式中提取條碼資料。 立即開始使用-無需複雜設置,即可立即見效。 立即開始使用 NuGet 建立 PDF 檔案: 使用 NuGet 套件管理器安裝 IronBarcode PM > Install-Package BarCode 複製並運行這段程式碼。 var results = IronBarCode.BarcodeReader.Read("path/to/image.png"); 部署到您的生產環境進行測試 立即開始在您的專案中使用 IronBarcode,免費試用! 免費試用30天 最小工作流程(5 個步驟) 下載用於從映像中讀取條碼的 C# 庫 使用Read方法從各種影像格式讀取條碼值 使用BarcodeReaderOptions類別配置讀取設定 使用CropArea屬性指定影像中的條碼區域 透過設定ExpectBarcodeTypes屬性來指定要讀取的條碼類型。 直接從影像中讀取條碼 現在,讓我們來看看如何實際使用 IronBarcode 進行條碼讀取: :path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-images-1.cs using IronBarCode; using System; var myBarcode = BarcodeReader.Read(@"image_file_path.jpg"); //image file path foreach (var item in myBarcode) { Console.WriteLine(item.ToString()); } Imports IronBarCode Imports System Private myBarcode = BarcodeReader.Read("image_file_path.jpg") 'image file path For Each item In myBarcode Console.WriteLine(item.ToString()) Next item $vbLabelText $csharpLabel 樣品測試二維碼 樣品測試條碼 想知道樣品中的條碼值是什麼嗎?試試這段程式碼片段吧! 要使用 IronBarcode,首先需要做的是透過 Microsoft Visual Studio NuGet 套件管理器將 IronBarcode 庫安裝到您的專案中,如下圖所示。 這將允許您存取 IronBarcode 的BarcodeReader.Read()方法,直接讀取條碼影像。 IronBarcode 提供了簡單易用的功能,使用者只需使用BarcodeReader.Read()即可讀取專案中已包含的映像文件,只需將文件名稱字串或文件路徑字串作為該方法的參數即可。 最佳實踐是在方法中指定檔案路徑時使用字串字面量"@",以避免在檔案路徑字串中新增多個轉義字元"\"。 在BarcodeReader.Read()方法呼叫的末端附加Values()方法,以將條碼值作為System.String[]物件取得。 若要將結果輸出到控制台,可以使用foreach循環遍歷儲存在string[]陣列中的值,並在迴圈區塊內呼叫Console.WriteLine()方法,並將迭代器變數作為參數。 IronBarcode 能夠讀取各種影像格式的一維條碼格式(Codabar、Code128、Code39、Code93、EAN13、EAN18、ITF、MSI、UPCA、UPCE)以及二維條碼格式(Aztec、DataMatrix、QRCode)。 條碼閱讀器選項設定 條碼讀取速度太慢? 圖片中的條碼是否太小,導致 IronBarcode 無法讀取? 只想讀取影像的特定區域? 想從包含多種條碼的圖像中只讀取特定類型的條碼嗎? 想提高整體閱讀能力嗎? 別再擔心了! BarcodeReaderOptions允許使用者調整條碼閱讀器的行為,以便解決上述所有問題。 讓我們逐一詳細了解並討論BarcodeReaderOptions中所有可調節的屬性。 作物面積 CropArea是BarcodeReaderOptions中IronSoftware.Drawing.CropRectangle類型的屬性,允許使用者指定 IronBarcode 應該讀取的影像區域。 這有助於提高讀取效能,因為條碼讀取器無需掃描整個影像來尋找條碼,同時由於讀取區域已指定,讀取精度也得以提高。 要設定CropArea屬性,只需實例化新的Rectangle類型對象,並將矩形的座標、寬度和長度指定為參數即可。 所接受的測量單位是像素(px)。 // Example of setting CropArea var cropArea = new IronSoftware.Drawing.Rectangle(x, y, width, height); // Example of setting CropArea var cropArea = new IronSoftware.Drawing.Rectangle(x, y, width, height); ' Example of setting CropArea Dim cropArea = New IronSoftware.Drawing.Rectangle(x, y, width, height) $vbLabelText $csharpLabel 預期條碼類型 預設情況下,IronBarcode 中所有支援的條碼都會以影像形式掃描。 但是,如果使用者知道影像中有哪些類型的條碼可用或想要讀取哪些類型的條碼,則將此屬性設為僅讀取某些類型的條碼將大大提高讀取效能和準確性,因為條碼讀取器不需要遍歷條碼集合來解釋和讀取條碼。 要使用此屬性,只需將ExpectBarcodeTypes設定為BarcodeEncoding枚舉的某個欄位即可。 以下是IronBarcode支援的每種條碼類型的範例。 以下是條碼類型列表,以及前面提供的範例和解釋。 預期多個條碼 IronBarcode 預設會掃描影像中所有可用的條碼,包括掃描整個影像檔案並將讀取的條碼值新增至字串陣列中。 但是,如果使用者不希望讀取影像檔案中的多個條碼,使用者可以將此屬性設為false ,這樣條碼讀取器在找到條碼值後就會停止掃描。 這將再次提高 IronBarcode 的效能和讀取速度。 影像濾鏡 BarcodeReaderOptions可以新增的屬性之一是影像過濾器集合。 影像濾波器對於預處理輸入到 IronBarcode 的原始影像非常重要。 若要套用BarcodeReaderOptions中的影像濾鏡,使用者必須先初始化並指定要使用的ImageFilter集合。 最大並行線程數 IronBarcode 讓使用者啟用和調整並行執行緒執行的數量,從而提高處理速度和效率。 並行執行緒是指在不同的處理器核心上同時執行多個執行緒。 IronBarcode 中MaxParallelThread屬性的預設值為 4。使用者可以根據機器的性能和資源量進行調整。 多執行緒 此特性使 IronBarcode 能夠並行讀取多個影像。 Multithreaded的預設值為true ,因此會自動管理多個線程,以提高批次條碼讀取任務的效能。 移除誤報 此屬性可消除所有誤報的條碼讀取結果。 假陽性條碼讀取是指條碼值的錯誤讀取,但卻被辨識為有效。 這可能是由於排序過程中的錯誤,或是條碼標籤或準備過程中的錯誤所造成的。 因此,將RemoveFalsePositive設為 true 將消除誤報的條碼讀數,從而提高條碼讀取準確率。 但是,如果使用者為了追求效能而犧牲準確性,則將此屬性設為false會有所幫助。此屬性的預設值為true 。 掃描模式 定義 IronBarcode 如何掃描和偵測影像中的條碼。 -自動:讀取條碼時,會自動進行影像預處理,並配置最佳的讀取器選項。 為獲得最佳效果和性能,建議採用此方法。 OnlyDetectionModel :掃描影像中的條碼,並傳回其位置的IronSoftware.Drawing.PointF陣列。 此模式無法讀取偵測到的條碼; 它只會傳回每個條碼的位置。 MachineLearningScan :使用機器學習偵測掃描影像中的條碼並讀取它們。 OnlyBasicScan :讀取條碼,無需機器學習偵測、自動影像預處理或讀取器選項配置。 此選項可單獨與 IronBarCode.Slim 搭配使用。 閱讀速度 顧名思義, "速度"屬性使用戶能夠進一步優化 IronBarcode 閱讀器的效能。 與RemoveFalsePositive屬性類似,調整此屬性會降低準確性,但會提高效能。 它接受ReadingSpeed枚舉類型,該枚舉類型有 4 個級別,如下所示: -速度更快:可實現最快的條碼讀取速度,但會降低準確性。 該過程跳過了影像預處理,經常導致條碼結果為空。 僅當輸入影像清晰銳利時才使用此設定。 -平衡:建議將Speed屬性設定為此模式。 它透過嘗試對影像進行輕微處理,使條碼區域更加清晰,從而在準確性和讀取性能之間取得平衡,使條碼讀取器能夠檢測到它。 大多數情況下,這種設定足以讓 IronBarcode 讀取條碼影像並產生準確的輸出。 -詳細:如果使用ReadingSpeed.Balanced設定無法從讀取中產生條碼值,使用者可以選擇使用ReadingSpeed.Detailed 。 IronBarcode 將對影像進行中等處理,以進一步清楚顯示條碼區域,以便條碼閱讀器能夠偵測到條碼。 此設定對於檢測較小或不太清晰的條碼影像非常有用。 ExtremeDetail :由於此設定會佔用大量 CPU 資源,因此最不建議使用。 將對條碼影像進行大量處理,以便閱讀器能夠讀取條碼。 這將大大降低IronBarcode的讀取效能。 建議使用者在選擇此設定之前,先對影像進行預處理/應用濾鏡。 使用代碼39擴展模式 此設定允許以擴展模式讀取和解釋 Code39 類型的條碼,其中將套用完整的 ASCII 字元集。 將UseCode39ExtendedMode設為true將能夠更準確地讀取 Code39 條碼。 從影像讀取高級條碼 現在我們已經了解了用戶可以調整的所有選項,無論是為了提高效能還是準確性,讓我們看看如何在程式碼中應用它們。 以下程式碼片段進行了演示。 // Insert actual C# code for advanced barcode reading from images here // Ensure the necessary options and settings are demonstrated in the example // Insert actual C# code for advanced barcode reading from images here // Ensure the necessary options and settings are demonstrated in the example ' Insert actual C# code for advanced barcode reading from images here ' Ensure the necessary options and settings are demonstrated in the example $vbLabelText $csharpLabel 從程式碼片段中我們可以看出,要使用BarcodeReaderOptions我們必須先對其進行初始化,然後根據上面所述的屬性確定並調整BarcodeReaderOptions的屬性。 初始化後的BarcodeReaderOptions可以與圖像檔案一起作為參數傳遞給BarcodeReader.Read()方法。這樣,從影像中讀取條碼時, BarcodeReaderOptions中的所有設定都會被套用。 常見問題解答 如何在 .NET 應用程式中從影像讀取 BarCode? 您可以使用 IronBarcode 中的 BarcodeReader.Read() 方法從 JPEG、PNG、GIF、TIFF、SVG 和 BMP 等圖像檔中讀取條碼。 在 IronBarcode 中,有哪些選項可以自定義條碼讀取? BarcodeReaderOptions 類允許透過設定屬性來自訂條碼讀取,例如 CropArea, ExpectBarcodeTypes, ImageFilters, MaxParallelThreads, 和 RemoveFalsePositive. 如何提高應用程式中的 BarCode 讀取精確度? 透過使用 RemoveFalsePositive 屬性來消除誤判,並使用 Detailed 或 ExtremeDetail 等選項來調整讀取速度,可以提高條碼讀取的精確度。 是否可以在 .NET 中執行多執行緒條碼讀取? 是的,IronBarcode 支持多线程条码读取。您可以通過設置 Multithreaded 屬性為 true 來啟用此功能,它允許自動管理線程。 如何指定要掃描 BarCode 的影像區域? 您可以透過設定 IronBarcode 中 BarcodeReaderOptions 類別中的 CropArea 屬性,指定影像中要掃描的區域。 在 BarCode 讀取中使用機器學習有什麼好處? 在 IronBarcode 中,使用機器學習進行條碼檢測可以適應各種圖像條件,提高識別能力,從而提高讀取的準確性和效率。 如何在 IronBarcode 中處理不同的條碼格式? IronBarcode 能夠讀取 1D 和 2D 條碼格式。您可以使用ExpectBarcodeTypes屬性指定期望的條碼類型。 在 .NET 專案中安裝 BarCode 讀取函式庫的流程為何? 若要在 .NET 專案中安裝 IronBarcode 函式庫,請使用 Microsoft Visual Studio 中的 NuGet 套件管理程式下載並整合函式庫。 IronBarcode 有哪些影像預處理選項? IronBarcode 透過 ImageFilters 屬性提供影像預處理選項,讓使用者在讀取條碼前強化影像。 如何優化大型影像檔案的 BarCode 讀取效能? 透過設定 MaxParallelThreads 來利用多個線程,並根據您的需求調整讀取速度,以最佳化效能。 Hairil Hasyimi Bin Omar 立即與工程團隊聊天 軟體工程師 和所有优秀的工程师一样,Hairil 是个努力学习者。他正在细化自己的 C# 、Python 和 Java 知识,将这些知识应用于 Iron Software 各个团队成员以增加价值。Hairil 自马来西亚 Universiti Teknologi MARA 加入 Iron Software 团队,并以化学与工艺工程学士学位毕业。 準備好開始了嗎? Nuget 下載 1,979,979 | Version: 2025.11 剛發表 免費下載 NuGet 下載總數:1,979,979 檢視授權