如何在 C# 中讀取多頁 GIF 與 TIFF 檔案中的 BarCode
IronBarcode 可自動處理多頁 TIFF 及動畫 GIF 檔案,無需手動分割畫面,僅需透過單一 BarcodeReader.Read 方法呼叫BarcodeReader.Read,即可從影像檔案中的每個畫面或頁面中擷取所有 BARCODE。
快速入門:從多頁 TIFF 或 GIF 檔案完整讀取 BarCode
IronBarcode 可載入多頁 TIFF 或動態 GIF 檔案,並透過單一方法呼叫即可擷取所有 BarCode。 無需分割框架或手動預處理——將檔案路徑傳遞給 [] 即可快速獲得結果。
簡化工作流程(5 個步驟)
- 下載用於讀取 BARCODE 的 C# 函式庫
- 準備用於 BarCode 偵測的 GIF 和 TIFF 圖像
- 將多幀 GIF 和 TIFF 圖像傳遞給
Read方法 - 套用影像濾鏡與選項以提升準確度與效能
- 將圖片轉換為多幀 GIF 和 TIFF
如何讀取多幀 GIF 和 TIFF 圖像?
using IronBarcode 讀取多幀 GIF 和 TIFF 圖像,其簡易程度與讀取單一圖像無異,因為 IronBarcode 能直接將多頁圖像檔案傳入 [] 方法中。 您無需準備圖片,因為所有處理流程均已內建於函式庫中。 如需全面了解 IronBarcode 的功能,請參閱我們的功能頁面。
為什麼 IronBarcode 會自動處理多幀圖像?
IronBarcode 能自動處理多幀圖像,以簡化您的工作流程。 傳統的 BarCode 讀取函式庫通常需要在處理前,從 GIF 動畫中擷取單一幀,或從 TIFF 檔案中分離頁面。 這會增加不必要的複雜性,並可能導致系統故障。 IronBarcode 的智慧型幀檢測功能透過內部解析影像結構,並自動遍歷每個幀或頁面,從而消除這項負擔。 此方法可確保無論幀數多少皆能維持一致的結果,同時透過優化的記憶體管理來維持高效能。
以下程式碼範例示範如何讀取多頁面的 GIF 和 TIFF 檔案:
:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-multi-page-frame-tiff-gif-read-tif.cs
using IronBarCode;
using System;
// Read barcode from TIF image
BarcodeResults results = BarcodeReader.Read("sample.tif");
// Output the barcodes value to console
foreach (var result in results)
{
Console.WriteLine(result.Value);
}
Imports IronBarCode
Imports System
' Read barcode from TIF image
Private results As BarcodeResults = BarcodeReader.Read("sample.tif")
' Output the barcodes value to console
For Each result In results
Console.WriteLine(result.Value)
Next result
多頁閱讀支援哪些圖像格式?
IronBarcode 的多頁讀取功能不僅限於 GIF 和 TIFF 格式。 此函式庫支援所有標準圖像格式,包括 JPEG、PNG、BMP 以及單頁圖像的 SVG 格式。 針對多頁面的支援,主要支援的格式為 TIFF 和動畫 GIF。 TIFF 格式具有極高的多功能性,因其能以多種壓縮方式儲存多張全解析度影像,因此非常適合用於文件掃描情境。 動畫 GIF 雖然僅限於 256 色,但擅長以緊湊且適合網頁的格式儲存多個 BARCODE 幀。 針對特殊需求,您亦可讀取 PDF 文件中的 BARCODE,此類文件通常包含多頁且內嵌 BARCODE。
何時應使用多幀圖像進行BarCode掃描?
多幀圖像非常適合多種商業情境。 文件管理系統採用多頁 TIFF 檔案作為標準格式,用於儲存掃描後的發票、運送文件或表單,其中每頁可能包含不同的 BARCODE。 製造與物流作業常使用動態 GIF 圖像,以視覺化工作流程呈現多種 BarCode 狀態或序列掃描指示。 批次處理應用程式能從多幀格式中獲益,因為這能降低檔案管理的開銷——您無需處理數百個獨立的影像檔案,而是僅需處理單一的多幀檔案。此外,在從資料流中讀取BarCode時,多幀格式能顯著減少記憶體分配並提升效能。
如何將圖片轉換為 GIF 和 TIFF 格式?
瞭解如何使用我們的開源函式庫 IronDrawing,將圖片轉換為多頁 TIFF 和 GIF 格式。 以下程式碼範例展示如何產生多頁面的 GIF 或 TIFF 影像。 此功能在將來自不同來源的多張BarCode圖像整合至單一檔案以進行高效處理時,尤為實用。
建立多幀 TIFF 檔案的流程為何?
建立多幀 TIFF 檔案,是指將多個影像來源整合至單一 TIFF 容器中。 首先將個別圖像載入記憶體中,作為位圖物件。 IronDrawing 的 AnyBitmap 類別提供了一個統一的介面,用於處理各種圖像格式,自動管理格式轉換並確保相容性。 在建立多幀 TIFF 檔案時,此函式庫會優化壓縮設定以平衡檔案大小與影像品質,這對於維持 BarCode 可讀性至關重要。
:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-multi-page-frame-tiff-gif-create-tiff-gif.cs
using IronBarCode;
using IronSoftware.Drawing;
using System.Collections.Generic;
// Import images
List<AnyBitmap> images = new List<AnyBitmap>()
{
AnyBitmap.FromFile("image1.png"),
AnyBitmap.FromFile("image2.png"),
AnyBitmap.FromFile("image3.png"),
AnyBitmap.FromFile("image4.jpg"),
AnyBitmap.FromFile("image5.jpg")
};
// Convert TIFF from images
AnyBitmap tiffImage = AnyBitmap.CreateMultiFrameTiff(images);
// Export TIFF
tiffImage.SaveAs("multiframetiff.tiff");
// Convert GIF from images
AnyBitmap gifImage = AnyBitmap.CreateMultiFrameGif(images);
// Export GIF
gifImage.SaveAs("multiframegif1.gif");
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System.Collections.Generic
' Import images
Private images As New List(Of AnyBitmap)() From {AnyBitmap.FromFile("image1.png"), AnyBitmap.FromFile("image2.png"), AnyBitmap.FromFile("image3.png"), AnyBitmap.FromFile("image4.jpg"), AnyBitmap.FromFile("image5.jpg")}
' Convert TIFF from images
Private tiffImage As AnyBitmap = AnyBitmap.CreateMultiFrameTiff(images)
' Export TIFF
tiffImage.SaveAs("multiframetiff.tiff")
' Convert GIF from images
Dim gifImage As AnyBitmap = AnyBitmap.CreateMultiFrameGif(images)
' Export GIF
gifImage.SaveAs("multiframegif1.gif")
根據上方的程式碼片段,我們首先將圖片檔案匯入 AnyBitmap 物件清單中,以此進行分組。 在呼叫 AnyBitmap.CreateMultiFrameTiff 和 AnyBitmap.CreateMultiFrameGif 方法時,請將此清單作為參數,以分別取得多頁 TIFF 和多頁 GIF 物件。
在 BARCODE 儲存方面,GIF 與 TIFF 格式有何差異?
多頁 GIF 和 TIFF 皆提供將圖片彙整為單一檔案的方法,但兩者存在顯著差異:
| 要點 | 多頁 GIF | 多頁 TIFF |
|---|---|---|
| 壓縮 | GIF 圖像採用無損壓縮,這意味著壓縮過程中不會遺失任何圖像資料。因此,相較於採用有損壓縮的格式,其檔案大小相對較大。 | TIFF 檔案可採用多種壓縮方式,包括無損壓縮(例如 LZW)與有損壓縮(例如 JPEG)。這種靈活性使 TIFF 檔案能在檔案大小與影像品質之間取得平衡。 |
| 色彩深度 | GIF 最多支援 256 種顏色(8 位元色深),相較於其他格式而言較為有限。這種有限的色域可能導致細節與色彩精準度的損失,特別是對於照片及含有漸層的圖像而言。 | TIFF 支援多種色彩深度,包括 1 位元(二進位)、8 位元(256 色)、24 位元(真彩色)等。這種靈活性使 TIFF 能夠儲存具有不同色彩細節層級的影像。 |
| 透明度 | GIF 支援二進位透明度,這意味著單一顏色可以完全透明,其餘顏色則完全不透明。這種缺乏部分透明度的特性,有時會導致具有平滑過渡的圖像出現鋸齒邊緣。 | TIFF 支援多種透明度形式,包括二進位透明度(類似 GIF)和 Alpha 通道透明度。Alpha 通道透明度可實現平滑過渡與半透明像素,提供高品質的透明效果。 |
| 動畫 | GIF 透過將多個幀組合成單一檔案來支援簡單的動畫效果。每個幀皆可設定獨立的延遲時間,從而形成基礎的動畫效果。GIF 動畫在網路上獲得廣泛支援。 | TIFF 並非主要為動畫而設計。雖然它能儲存多張圖像,但缺乏像 GIF 那樣的內建動畫支援。多頁 TIFF 檔案中的每一頁,通常都是一張獨立的圖像,而非動畫序列中的單一幀。 |
對於多頁BarCode圖像,我應該選擇哪種格式?
請根據您的具體使用情境,在 GIF 與 TIFF 格式之間進行選擇。 在處理需要精確保留細節的高解析度 BARCODE 影像時(例如文件歸檔或 Professional 掃描應用),請選擇 TIFF 格式。 TIFF 支援多種壓縮方式與色彩深度,使其成為維持各類 BARCODE 品質的理想選擇,包括具有細微細節的 BARCODE,例如 2D Data Matrix BARCODE。
當檔案大小是考量因素,且 BARCODE 為 Code 39 或 Code 128 等簡單的線性格式時,請選擇 GIF 格式。GIF 廣泛的網頁相容性使其適合用於使用者可能預覽 BARCODE 序列的線上應用程式。 然而,請避免使用 GIF 格式呈現複雜的 QR 碼或帶有色彩漸變的 BARCODE,因為 256 色的限制可能會影響可讀性。
關於檔案大小的考量有哪些?
檔案大小因格式而異,且會影響儲存、傳輸及處理速度。 採用無損壓縮的 TIFF 檔案,在 300 DPI 解析度下,每張 BarCode 圖像的檔案大小通常介於 10 至 50 KB 之間,適合用於檔案保存級別。 透過 TIFF 中的 JPEG 壓縮,檔案大小可減少 70-80%,同時仍能維持可接受的 BARCODE 可讀性。 由於色彩範圍有限,GIF 檔案通常較小,標準 BarCode 每幀平均僅需 5 至 15 KB。 在實施具有特定效能要求的BarCode讀取功能時,請注意:較小的檔案處理速度較快,但在邊緣案例中可能會犧牲準確性。
如何設定進階BarCode讀取選項?
雖然 IronBarcode 開箱即用,但某些圖像可能需要配置 BarcodeReaderOptions 類別,才能實現精準且快速的 BARCODE 讀取。 有關此類別的更多資訊,請參閱《如何從影像檔案(jpg、png、gif、tiff、svg、bmp)讀取BarCode》一文。 如需詳細的 API 文件,請參閱 BarcodeReaderOptions 參考文件。
何時應使用影像濾鏡以提升準確度?
當處理畫質不佳的影像時,影像濾鏡便成為不可或缺的工具——這在多幀檔案中相當常見,此類檔案各幀的畫質可能參差不齊。 當BARCODE因掃描器限制而顯得模糊、因光線不足導致對比度低,或因壓縮失真而含有雜訊時,請套用濾鏡。 IronBarcode 的影像修正功能包含:針對不同光線條件的自適應閾值調整、用於處理動態模糊的銳化濾鏡,以及針對褪色印跡的對比度增強功能。 對於多幀檔案而言,濾鏡特別有用,因為它們能在無需人工干預的情況下,彌補各幀之間的畫質差異。
以下程式碼片段示範如何在 BarcodeReaderOptions 類別中設定屬性:
:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-multi-page-frame-tiff-gif-advance.cs
using IronBarCode;
using System;
// Configure filters
ImageFilterCollection filters = new ImageFilterCollection()
{
new SharpenFilter(3.5f),
new ContrastFilter(2)
};
// Configure options
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
ExpectBarcodeTypes = IronBarCode.BarcodeEncoding.QRCode,
ImageFilters = filters,
ExpectMultipleBarcodes = true,
Speed = ReadingSpeed.Balanced
};
// Read barcode from TIF image
BarcodeResults results = BarcodeReader.Read("sample.tif", options);
// Output the barcodes value to console
foreach (var result in results)
{
Console.WriteLine(result.Value);
}
Imports IronBarCode
Imports System
' Configure filters
Private filters As New ImageFilterCollection() From {
New SharpenFilter(3.5F),
New ContrastFilter(2)
}
' Configure options
Private options As New BarcodeReaderOptions() With {
.ExpectBarcodeTypes = IronBarCode.BarcodeEncoding.QRCode,
.ImageFilters = filters,
.ExpectMultipleBarcodes = True,
.Speed = ReadingSpeed.Balanced
}
' Read barcode from TIF image
Private results As BarcodeResults = BarcodeReader.Read("sample.tif", options)
' Output the barcodes value to console
For Each result In results
Console.WriteLine(result.Value)
Next result
對於多頁文件,我應該使用哪些效能設定?
針對多頁文件的效能優化,需根據您的需求在速度與準確性之間取得平衡。 若需處理大量資料且速度至關重要,請使用 ReadingSpeed.Faster 或 ReadingSpeed.Fastest,此方式雖會降低掃描的徹底性,但能顯著提升處理量——非常適合在受控環境中掃描印刷清晰的BARCODE。 對於精確度至關重要的關鍵任務應用程式,ReadingSpeed.Detailed 能在犧牲處理時間的前提下確保最高的偵測率。ReadingSpeed.Balanced 設定則為大多數商業應用程式提供了最佳的折衷方案。 處理多頁文件時,建議採用非同步讀取模式以並行處理各頁,此舉可大幅提升整體處理效能。
如何在閱讀速度與準確性之間取得最佳平衡?
要優化速度與精準度的權衡,需進行多項策略性設定。 首先,請使用 ExpectBarcodeTypes 指定預期的 BARCODE 類型,以消除不必要的格式檢查——僅此一項即可提升 40-60% 的速度。 其次,當BarCode在各幀中出現在固定位置時,請使用裁切區域功能,以縮小搜尋範圍。 第三,請調整 MaxParallelThreads 屬性以配合您的 CPU 效能,以實現最佳的幀並行處理效果。 為優化準確度,當畫面可能包含多個BARCODE時,請啟用 ExpectMultipleBarcodes,並根據影像特性套用適當的影像濾鏡。 機器學習的信心閾值功能也有助於在複雜圖像中過濾出誤判結果。
讀取失敗時,常見的疑難排解步驟有哪些?
當處理多幀檔案時遇到讀取失敗的情況,請遵循此系統化方法。 首先,請透過擷取並測試單一幀來驗證各幀的品質——若單一幀出現問題,則該問題並非多幀處理所特有。 請檢查常見的辨識問題,例如靜區不足、BarCode傾斜或符號損壞。 對於難以辨識的 BARCODE,請啟用 TryHarder 模式,儘管這會增加處理時間。若問題持續存在,請實施影像方向校正,因為旋轉的 BARCODE 是導致失敗的常見原因。 請考慮調整解析度——BARCODE 通常在 200-300 DPI 時讀取效果最佳,超過 400 DPI 則效益遞減。 若特定BarCode類型仍出現問題,請參閱支援格式文件以確保相容性。
雖然在大多數使用情境下,設定 BarcodeReaderOptions 物件並非必要,但在從多頁 GIF 和 TIFF 影像檔案讀取 BARCODE 時,此設定有助於充分發揮 IronBarcode 的效能。 在生產環境中,請先採用預設設定,並根據您的具體效能指標與精確度要求逐步進行優化。
常見問題
如何在 C# 中從多頁 TIFF 文件中讀取條碼?
使用 IronBarcode,您可以使用一個方法呼叫從多頁 TIFF 文件中讀取條碼:BarcodeReader.Read("multiPageImage.tiff"). IronBarcode 自動處理 TIFF 文件中的每一頁,不需要手動分離框架或進行預處理。
我可以從動畫 GIF 文件中提取條碼嗎?
是的,IronBarcode 自動從動畫 GIF 文件的所有幀中提取條碼。只需將 GIF 文件路徑傳遞給 BarcodeReader.Read 方法,IronBarcode 會在內部解析每個框架以檢測並讀取所有存在的條碼。
我需要在讀取多頁圖像中的條碼之前手動分割框架嗎?
不需要,IronBarcode 消除了手動分割框架的需求。該程式庫的智能框架檢測會自動解析圖像結構,並在內部遍歷每個框架或頁,簡化了您的工作流程並減少潛在的故障點。
哪些圖像格式支持多頁條碼讀取?
IronBarcode 主要支持 TIFF 和動畫 GIF 格式的多頁條碼讀取。雖然該程式庫也可處理單頁格式如 JPEG、PNG、BMP 和 SVG,但 TIFF 和 GIF 專門適用於多頁處理,具有自動框架檢測功能。
讀取多頁圖像中的條碼需要多少步驟?
IronBarcode 只需 5 個簡單步驟:下載 C# 程式庫,準備您的 GIF 和 TIFF 圖像,將它們傳遞給 Read 方法,選擇性地應用圖像過濾器以提高準確性,並在需要時將圖像轉換為多幀格式。
為什麼 TIFF 格式特別適合多頁條碼掃描?
TIFF 格式對於使用 IronBarcode 掃描文件場景非常理想,因為它可以使用多種壓縮方法儲存多個全分辨率圖像。這種多功能性使 TIFF 特別有效地處理包含跨多頁條碼的掃描文件。
IronBarcode是否提供自定義條碼外觀的支持?
是的,IronBarcode提供了廣泛的條碼外觀自定義選項,包括顏色、大小和文字註釋,讓您可以根據具體設計需求定制條碼。
IronBarcode如何幫助改善業務流程效率?
IronBarcode通過使條碼生成和讀取快速且準確來提高業務流程效率,減少手動數據輸入錯誤,並改善庫存和資產追蹤。
將IronBarcode實現於專案中需要什麼程式設計技能?
基本的C#程式設計知識足以將IronBarcode實現於專案中,因為它提供了簡單的方法和全面的文檔來指導開發者。
IronBarcode適合於小型專案和大型企業應用嗎?
IronBarcode設計為可擴展且多功能,使其適合小型專案和需要強大條碼解決方案的大型企業應用。

