如何從多頁/幀 GIF 和 TIFF 中讀取條形碼
IronBarcode 支援多種影像格式輸入以進行讀取,包括多頁和多幀的 GIF 與 TIFF 影像格式。 這為用戶提供了便利,使他們可以直接使用圖像,而無需手動分離 TIFF 或 GIF 文件的框架或頁面。讓我們探索如何使用 IronBarcode 來讀取這些文件格式。
如何從多頁/幀 GIF 和 TIFF 中讀取條形碼
- 下載讀取條碼的C#庫
- 準備 GIF 和 TIFF 圖像以進行條碼檢測
- 將多幀 GIF 和 TIFF 圖像傳遞給
讀取
方法 - 應用影像過濾器和選項以提升準確度和效能
- 將影像轉換為多幀 GIF 和 TIFF
開始使用 IronBarcode
立即在您的專案中使用IronBarcode,並享受免費試用。
讀取多幀 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)中讀取條碼'article.'
下面的程式碼片段提供了可以在 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
。 這些過濾器本質上有助於提高模糊圖像的清晰度,以便於條碼檢測和讀取。 您可以在「如何使用圖像校正濾鏡'article.'
對於 BarcodeReaderOptions
物件,我們建議用戶包括 ExpectMultipleBarcodes
以便 IronBarcode 掃描圖像文件中的所有可用條碼,Speed
以在讀取精度和性能之間取得平衡,ExpectBarcodeTypes
以進一步提高性能,以及 ImageFilters
以應用設置在 ImageFilterCollection
物件中的過濾器以提高讀取精度。
雖然在大多數使用情況下設置 BarcodeReaderOptions
物件是可選的,但對於用戶在讀取多頁 GIF 和 TIFF 圖像文件中的條形碼時,充分利用 IronBarcode 是非常重要的。