如何在 C# 中從多頁 GIF 和 TIFF 圖像中讀取條形碼

How to Read Barcodes from Multi-Page/Frame GIF and TIFF

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

IronBarcode 支援多種影像格式輸入進行讀取,包括多頁和多框架的 GIF 和 TIFF影像格式。 這為用户提供了便利,可以直接使用影像,而不需要手動分隔 TIFF 或 GIF 文件的框架或頁面。讓我們來探索一下如何使用 IronBarcode 來讀取這些文件格式。

標題:2(快速開始: 全面從多頁 TIFF 或 GIF 文件中讀取條碼)

僅需一次簡單的方法調用,IronBarcode 就可以載入多頁的 TIFF 或動畫 GIF 並提取所有條碼。 無需分割框架或手動預處理,只需將文件路徑傳遞給 BarcodeReader.Read 即可快速獲得結果。

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. Copy and run this code snippet.

    IronBarCode.BarcodeResults results = IronBarCode.BarcodeReader.Read("multiPageImage.tiff");
  3. Deploy to test on your live environment

    Start using IronBarcode in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

最小化工作流程(5 步驟)

  1. 下載用於讀取條碼的 C# 庫
  2. 準備 GIF 和 TIFF 圖像以進行條碼檢測
  3. 將多框架 GIF 和 TIFF 圖像傳遞給Read方法
  4. 應用圖像過濾器和選項以提高準確性和性能
  5. 將圖像轉換為多框架 GIF 和 TIFF

讀取多框架 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 多頁 TIFF
壓縮 GIF 圖像使用無損壓縮,意味著壓縮過程中不會丟失任何圖像數據。因此,與有損壓縮的格式相比,文件大小相對較大。 TIFF 文件可以使用多種壓縮方法,包括無損壓縮(如 LZW)和有損壓縮(如 JPEG)。這種靈活性允許 TIFF 文件在文件大小和圖像質量之間平衡。
顏色深度 GIF 支持最多 256 種顏色(8 位顏色深度),與其他格式相比受到限制。這種有限的色彩調色板可能會導致細節和色彩準確性的丟失,尤其對於照片和漸變圖像。 TIFF 支持各種顏色深度,包括 1 位(二進制)、8 位(256 種顏色)、24 位(真彩)等。這種靈活性允許 TIFF 存儲具有不同色彩細節的圖像。
透明度 GIF 支持二進制透明度,這意味著一種顏色可以完全透明,而其餘顏色則完全不透明。這種缺乏部分透明度有時會導致圖片邊緣處的鋸齒。 TIFF 支持多種形式的透明度,包括二進制透明度(類似於 GIF)和通道透明度。通道透明度允許平滑過渡和半透明像素,提供高質量的透明效果。
動畫 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以進一步提高性能,並將圖像過濾器應用於ImageFilterCollection中設定的過濾器上以提高讀取準確性。

雖然對大多數使用情況來說設置BarcodeReaderOptions對象是可選的,但對於從多頁的 GIF 和 TIFF 圖像文件中讀取條碼時,對於用戶來說仍然非常重要,以便IronBarcode 發揮最大效能。

常見問題解答

如何在 C# 中從多頁 GIF 和 TIFF 文件中讀取條形碼?

您可以使用 IronBarcode 的 BarcodeReader.Read 方法從多頁 GIF 和 TIFF 文件中讀取條形碼。只需將圖像文件傳遞給該方法,IronBarcode 將無縫處理多頁或多幀圖像。

使用 IronBarcode 讀取多頁圖像文件有哪些好處?

IronBarcode 簡化了讀取多頁圖像文件的過程,直接接受它們,而不需要手動分離幀或頁面。它還提供了圖像濾鏡和 BarcodeReaderOptions 等高級選項,以提高讀取準確性。

我可以使用圖像濾鏡來提高 IronBarcode 的條形碼讀取準確性嗎?

是的,您可以在 IronBarcode 中應用圖像濾鏡,如灰階、銳化濾鏡和對比濾鏡,以增強圖像清晰度並提高條形碼讀取準確性。

使用 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,935,276 | 版本: 2025.11 剛剛發布