如何在 C# 中從多頁 GIF 和 TIFF 影像讀取 BarCode

如何在 C# 中讀取多頁 GIF 和 TIFF 檔案中的條碼

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

IronBarcode 支援多種影像格式輸入進行讀取,包括多頁和多幀 GIF 和 TIFF影像格式。 這樣一來,使用者無需手動分離 TIFF 或 GIF 檔案的幀或頁面,即可輕鬆使用影像。接下來,我們將探討如何使用 IronBarcode 來讀取這些檔案格式。

快速入門:從多頁 TIFF 或 GIF 檔案中完整讀取條碼

IronBarcode 只需一個簡單的方法呼叫即可載入多頁 TIFF 或動畫 GIF 並提取所有條碼。 無需分割幀或手動預處理——只需將檔案路徑傳遞給 BarcodeReader.Read 即可快速獲得結果。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronBarcode

    PM > Install-Package BarCode

  2. 複製並運行這段程式碼。

    IronBarCode.BarcodeResults results = IronBarCode.BarcodeReader.Read("multiPageImage.tiff");
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronBarcode,免費試用!
    arrow pointer

讀取多幀 GIF 和 TIFF 影像

使用 IronBarcode 讀取多幀 GIF 和 TIFF 影像與讀取單一影像一樣簡單,因為 IronBarcode 可以輕鬆地將多頁影像檔案匯入到BarcodeReader.Read方法中。 使用者無需進行任何影像準備工作,因為所有影像都已內建於庫中。

以下程式碼範例示範如何讀取多頁 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
$vbLabelText   $csharpLabel

將影像轉換為 GIF 和 TIFF 格式

學習如何利用我們的開源程式庫IronDrawing將影像轉換為多頁 TIFF 和 GIF。 現在,讓我們來看看下面的程式碼範例,了解如何產生多頁 GIF 或 TIFF 影像。

: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")
$vbLabelText   $csharpLabel

從上面的程式碼片段中,我們首先將多個圖像檔案匯入到AnyBitmap物件清單中,從而將它們分組。 然後,可以將此清單用作參數,呼叫AnyBitmap.CreateMultiFrameTiffAnyBitmap.CreateMultiFrameGif方法,分別取得多頁 TIFF 和多頁 GIF 物件。

雖然多頁 GIF 和 TIFF 都提供了將影像組合成單一檔案的方法,但這兩種格式之間存在一些差異,如下所述:

範疇 多頁 GIF Multipage 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檔案中的每一頁通常都是一張單獨的圖像,而不是動畫序列中的一幀。

高級條碼讀取

雖然 IronBarcode 可以直接使用,但某些影像可能需要配置BarcodeReaderOptions類別才能實現準確**快速的**條碼讀取。 您可以在"如何從圖片檔案(jpg、png、gif、tiff、svg、bmp)中讀取條碼"一文中找到有關此類的更多資訊。

下面的程式碼片段提供了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
$vbLabelText   $csharpLabel

在程式碼片段中,我們不僅設定了BarcodeReaderOptions屬性,還應用了一些濾鏡,特別是SharpenFilterContrastFilter 。 這些濾鏡主要有助於提高模糊影像的清晰度,從而實現條碼的偵測和讀取。 您可以在"如何使用影像校正濾鏡"一文中找到更多關於影像校正濾鏡的資訊。

對於BarcodeReaderOptions對象,我們建議用戶添加ExpectMultipleBarcodes以讓 IronBarcode 掃描圖像檔案中所有可用的條碼, Speed以平衡讀取精度和性能,添加ExpectBarcodeTypes以進一步提高性能,以及添加ImageFilters以應用ImageFilterCollection中設置的過濾器以提高讀取精度。

雖然對於大多數使用場景來說,設定 BarcodeReaderOptions 物件是可選的,但對於從多頁 GIF 和 TIFF 影像檔案中讀取條碼的使用者來說,為了充分利用 IronBarcode 的功能,設定BarcodeReaderOptions物件非常重要。

常見問題解答

如何在 C# 中從多頁 GIF 和 TIFF 檔案讀取 BarCode?

您可以利用 BarcodeReader.Read 方法,使用 IronBarcode 從多頁 GIF 和 TIFF 檔案中讀取條碼。只需將圖像檔傳給該方法,IronBarcode 即可無縫處理多頁或多畫面圖像。

使用 IronBarcode 讀取多頁影像檔案有什麼好處?

IronBarcode 簡化了讀取多頁影像檔案的過程,它可以直接接受影像檔案,而不需要手動分開框架或頁面。它也提供了進階選項,例如影像篩選器和 BarcodeReaderOptions 以提高讀取的精確度。

我可以在 IronBarcode 中使用圖像過濾器來提高條碼讀取精度嗎?

是的,您可以在 IronBarcode 中應用圖像過濾器,例如 Grayscale、SharpenFilter 和 ContrastFilter,以增強圖像的清晰度和提高條碼讀取的準確性。

是否可以使用 IronBarcode 在單一影像中讀取多個條碼?

是的,IronBarcode 可以通過啟用 BarcodeReaderOptions 類中的 ExpectMultipleBarcodes 選項來檢測單一圖像中的多個條碼。

如何使用 C# 將影像轉換為多頁 TIFF 或 GIF?

您可以使用 IronDrawing 函式庫將影像轉換為多頁 TIFF 或 GIF 格式。將影像匯入 AnyBitmap 物件的清單,並使用 AnyBitmap.CreateMultiFrameTiffAnyBitmap.CreateMultiFrameGif 方法。

多頁 GIF 與 TIFF 格式有何差異?

多頁 GIF 使用無損壓縮,支援簡單的動畫,但限制為 256 色。多頁 TIFF 支援各種壓縮方法、更高的色彩深度和透明度選項,但並非專為動畫設計。

使用 IronBarcode 讀取條碼前,是否需要對圖片進行預處理?

不需要預先處理。IronBarcode 可直接處理並讀取多頁影像檔案,無需任何手動準備。

如何使用 IronBarcode 應用先進的條碼讀取技術?

IronBarcode 中的高級條碼讀取可以通過配置 BarcodeReaderOptions 類來實現。像ExpectMultipleBarcodesSpeedImageFilters这样的选项可以被设置来优化性能和准确性。

Hairil Hasyimi Bin Omar
軟體工程師
和所有优秀的工程师一样,Hairil 是个努力学习者。他正在细化自己的 C# 、Python 和 Java 知识,将这些知识应用于 Iron Software 各个团队成员以增加价值。Hairil 自马来西亚 Universiti Teknologi MARA 加入 Iron Software 团队,并以化学与工艺工程学士学位毕业。
準備好開始了嗎?
Nuget 下載 1,979,979 | Version: 2025.11 剛發表