如何從多頁/幀 GIF 和 TIFF 中讀取條形碼
IronBarcode 支援多種影像格式輸入進行讀取,包括多頁和多幀的 GIF 和 TIFF 影像格式。這提供了使用者的便利,無需手動分離 TIFF 或 GIF 檔案的幀或頁面即可簡單地使用影像。讓我們來探討如何使用 IronBarcode 來讀取這些檔案格式。
如何從多頁/幀 GIF 和 TIFF 中讀取條形碼
- 下載讀取條碼的C#庫
- 準備 GIF 和 TIFF 圖像以進行條碼檢測
- 將多幀 GIF 和 TIFF 圖像傳遞給
讀取
方法 - 應用影像過濾器和選項以提升準確度和效能
- 將影像轉換為多幀 GIF 和 TIFF
立即開始在您的專案中使用IronPDF,並享受免費試用。
查看 IronBarcode 上 Nuget 快速安裝和部署。已被下載超過800萬次,它正用C#改變。
Install-Package BarCode
請考慮安裝 IronBarcode DLL 直接下載並手動安裝到您的專案或GAC表單: IronBarCode.zip
手動安裝到您的項目中
下載DLL讀取多幀 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
將圖像轉換為 GIF 和 TIFF
了解如何利用我們的開源庫將圖像轉換為多頁 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")
從上面的程式碼片段中,我們可以首先通過將多個影像文件匯入到AnyBitmap
對象的列表中來對其進行分組。然後可以將此列表作為參數傳遞給AnyBitmap.CreateMultiFrameTiff
和AnyBitmap.CreateMultiFrameGif
方法,分別獲取多頁 TIFF 和多頁 GIF 對象。
雖然多頁 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 文件中,每頁通常是獨立的圖像,而不是動畫序列中的一幀。 |
高級條碼識別
雖然 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
在這段代碼片段中,我們不僅設置了 BarcodeReaderOptions
屬性,而且還應用了一些篩選器,特別是 SharpenFilter
和 ContrastFilter
。這些篩選器實際上有助於提高模糊圖像在條碼檢測和讀取中的清晰度。您可以在「」中找到有關圖像校正篩選器的更多信息。如何使用圖像校正濾鏡' 文章。
對於 BarcodeReaderOptions
物件,我們建議使用者包含 ExpectMultipleBarcodes
以便 IronBarcode 掃描影像檔中的所有可用條碼,Speed
用於在閱讀準確性與性能之間取得平衡,ExpectBarcodeTypes
以進一步提高性能,還有 ImageFilters
用於應用 ImageFilterCollection
物件中的過濾器設定,以提高閱讀準確性。
雖然在大多數情況下,設置 BarcodeReaderOptions
物件是可選的,但當從多頁 GIF 和 TIFF 影像檔中閱讀條碼時,這對於充分利用 IronBarcode 非常重要。